小编典典

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

ajax

我的服务器上托管了一个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

知道有什么问题吗?


阅读 346

收藏
2020-07-26

共1个答案

小编典典

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
2020-07-26