我的服务器上托管了一个json文件。当我尝试向json文件发出Ajax“ GET”请求时,它失败。
请参阅Safari中的控制台,其中显示“无法加载资源”。
Firebug显示“ 200 OK”,但未显示响应。甚至Firebug也不会显示JSON标签。
我相信这是因为不允许使用AJAX进行跨域请求。
我想知道如何克服这个问题?另外,如果要在服务器上启用跨域请求,则认为crossdomain.xml需要创建文件或其他内容。我不确定,但这就是我所知道的。我在Google上搜索,但找不到任何相关链接。
crossdomain.xml
在这方面的任何帮助都将受到高度赞赏。
谢谢。
更新: 我没有使用任何服务器端脚本语言(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。
parseerror
知道有什么问题吗?
Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com
在目标服务器上
在php中:
header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");
如果您不想使用服务器脚本语言:请将其放在(linux)控制台中
a2enmod headers
并添加到您的.htaccess文件中
Header set Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com