【发布时间】:2011-10-15 19:23:35
【问题描述】:
我的服务器上托管了一个 json 文件。当我尝试向 json 文件发出 Ajax“GET”请求时,它失败了。
在 Safari 中查看控制台,显示“加载资源失败”。
Firebug 显示“200 OK”,但没有显示响应。甚至 Firebug 也不显示 JSON 选项卡。
我认为这是因为不允许使用 AJAX 进行跨域请求。
我想知道如何克服这个问题?另外,如果我想在我的服务器上启用跨域请求,我相信需要创建一个 crossdomain.xml 文件或其他东西。我不确定,但这是我所知道的。我在 Google 上搜索,但找不到任何相关链接。
非常感谢您对此提供的任何帮助。
谢谢。
更新: 我没有使用任何服务器端脚本语言(PHP、ASP.NET 等)。我正在使用纯 HTML 和 JavaScript / jQuery。
UPDATE-2:
我使用以下代码进行跨域请求:
<script src="jquery-1.6.2.js"></script>
<script>
$(document).ready(function () {
$.ajax({
dataType: 'jsonp',
data: '',
jsonp: 'jsonp_callback',
url: 'http://myhosting.net/myjsonfile.json',
success: function (jsonData) {
alert("success")
alert(jsonData);
},
error: function(errorObj) {
alert(errorObj.statusText);
},
});
});
当我在 Firebug 的“网络”选项卡中看到一个 JSON 选项卡时,我能够看到 json 响应。但是,“成功”回调处理程序没有被调用,但“错误”回调处理程序被调用,我收到警告说 parseerror。
知道可能出了什么问题吗?
【问题讨论】:
-
jQuery AJAX cross domain 的可能重复项
标签: ajax json jquery cross-domain