首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jquery中调用外部url?

问如何在jquery中调用外部url?
EN

Stack Overflow用户
提问于 2011-01-06 17:10:11
回答 7查看 160K关注 0票数 32

我正在尝试使用jquery在Facebook墙上发表评论。

但是我的ajax调用没有提供外部url。

谁能解释一下如何在jquery中使用外部url?

下面是我的代码:

代码语言:javascript
复制
var fbUrl="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token";

$.ajax({        
    url: fbURL ,
    data: "message="+commentdata,
    type: 'POST',
    success: function (resp) {
        alert(resp);
    },
    error: function(e){
        alert('Error: '+e);
    }  
});

它给了xmlhtttprequest错误。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-01-06 17:54:09

所有这些答案都是错误的!

就像我在我的评论中所说的,之所以会出现这个错误,是因为URL没有通过"Same origin policy",但您仍然可以使用AJAX函数访问另一个域,请参阅Nick Cravers answer on this similar question

你需要通过添加&callback=来用$.getJSON()触发

行为吗?在querystring上,如下所示:

$.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json&callback=?",function(data) { doSomethingWith(data);});

你可以在这里测试它。

如果不使用JSONP,您就会遇到同源策略,这会阻止XmlHttpRequest获取任何数据。

考虑到这一点,下面的代码应该可以工作:

代码语言:javascript
复制
var fbURL="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token";

$.ajax({
    url: fbURL+"&callback=?",
    data: "message="+commentdata,
    type: 'POST',
    success: function (resp) {
        alert(resp);
    },
    error: function(e) {
        alert('Error: '+e);
    }  
});
票数 27
EN

Stack Overflow用户

发布于 2012-08-01 02:36:27

JQuery和PHP

PHP文件“contenido.php”中:

代码语言:javascript
复制
<?php
$mURL = $_GET['url'];

echo file_get_contents($mURL);
?>

在html中:

代码语言:javascript
复制
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript">
    function getContent(pUrl, pDivDestino){
        var mDivDestino = $('#'+pDivDestino);

        $.ajax({
            type : 'GET',
            url : 'contenido.php',
            dataType : 'html',
            data: {
                url : pUrl
            },
            success : function(data){                                               
                mDivDestino.html(data);
            }   
        });
    }
</script>

<a href="#" onclick="javascript:getContent('http://www.google.com/', 'contenido')">Get Google</a>
<div id="contenido"></div>
票数 7
EN

Stack Overflow用户

发布于 2011-01-06 17:13:38

这是Cross-site scripting问题。常见的现代浏览器不允许向另一个url发送请求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4613310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档