如何在服务器上启用跨域请求?

我的服务器上托管了一个json文件。 当我尝试向json文件发出Ajax“GET”请求时,它失败了。

在Safari中查看控制台,它说“无法加载资源”。

Firebug显示“200 OK”,但响应没有显示出来。 甚至Firebug也没有显示JSON选项卡。

我相信这是因为使用AJAX不允许跨域请求。

我想知道如何克服这个问题? 另外,如果我想在我的服务器上启用跨域请求,我相信需要创建一个crossdomain.xml文件。 我不确定,但这就是我所知道的。 我在Google上搜索过,但找不到任何相关链接。

任何帮助都非常感谢。

谢谢。

更新:我没有使用任何服务器端脚本语言(PHP,ASP.NET等)。 我使用的是纯HTML和JavaScript / jQuery。

更新2:

我使用以下代码来制作跨域请求:

   $(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的“Net”选项卡中看到时,我看到一个JSON选项卡,我能够看到json响应。 但是,“success”回调处理程序不会被调用,但是“错误”回调处理程序被调用,我得到一个说出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 

把它放在你的.htaccess和简单的ajax中

  Header set Access-Control-Allow-Origin: *  

由genesis给出的解决方案对我有用,但是我必须省略url上的尾随斜杠。 即:

 header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");