【问题标题】:Jquery-No 'Access-Control-Allow-Origin' header is present on the requested resource请求的资源上不存在 Jquery-No 'Access-Control-Allow-Origin' 标头
【发布时间】:2016-04-10 01:12:30
【问题描述】:

我从其他网站请求json数据,但是遇到了访问控制允许来源在标题中的问题,我不知道如何设置访问控制允许来源在标题中,我将我的源代码放在iis8中从另一个 iis8 api 源访问 json 数据。

$.ajax({
    type: "GET",
    url:rootURL,
    xhrFields: {
        withCredentials: false
    },

    headers: {
      "Access-Control-Allow-Origin: ": "*",
      "Access-Control-Allow-Methods: ": "GET",
      "Access-Control-Allow-Headers: ": "Authorization",
    },
    dataType: "json",
    success: function(data) {   
    },
    error: function() {
        alert("An error occurred while processing JSON file.");
    }
});     

【问题讨论】:

  • 应该由服务器而不是客户端发送这些标头。
  • 服务器必须设置这些标头,而不是请求,你不能告诉它。如果服务器上未启用它,您需要采用其他方式来获取数据。这很容易研究
  • 我已经将它们添加到服务器的 web.config 文件中并且已经解决了!太棒了!!

标签: jquery json


【解决方案1】:

这些应该在服务器中,而不是客户端:

"Access-Control-Allow-Origin: ": "*",

要在服务器中实现,对于 PHP:

<?php
  header("Access-Control-Allow-Origin: *");

对于 ASP.NET:

Response.AppendHeader("Access-Control-Allow-Origin", "*");

对于其他人,请查看I want to add CORS support to my server 了解更多信息。

【讨论】:

  • 非常感谢!!!我已经解决了~但是现在对于put,delete,update等其他方法,它发生Preflight的Response has invalid HTTP status code 404错误请问我知道如何正确解决它,tq这么多
猜你喜欢
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2013-11-29
  • 2014-07-28
  • 2014-01-19
相关资源
最近更新 更多