我只需要从特定(跨域)请求中获取'html'。
我正在使用传递dataType=json
的JQuery.ajax()函数,以便JQuery生成script
标记并触发请求。
这是代码:
var url="http://www.google.com/callback=?"; $.ajax({ type: 'GET', url: url, dataType: 'json', success: function(data) {$("#out").append("success "+data); }, error: function(data) {$("#out").append("failure "+data); }, complete: function(data) {$("#out").append("complete "+data); }, data: {}, async: false });
现在,奇怪的是,使用firebug,我确实看到了生成的脚本标记和来自远程服务器的响应,但没有调用我的回调。
如何从ajax()
电话中获取html?我首先使用了错误的功能吗?
答案 0 :(得分:0)
未调用回调,因为返回的文档不是由对该回调的函数调用组成的JavaScript应用程序。
JSON-P通过运行调用页面上的函数的第三方JS来工作。
你can't use client side code to get content that isn't expressed as JavaScript from a different origin。
如果您想获得此类内容,则需要通过服务器进行代理。两个来自同一个来源(因此您可以直接获取内容)或一个transforms it to JSON-P。