请求的资源上不存在 Jquery-No 'Access-Control-Allow-Origin' 标头

Posted

技术标签:

【中文标题】请求的资源上不存在 Jquery-No \'Access-Control-Allow-Origin\' 标头【英文标题】: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 文件中并且已经解决了!太棒了!! 【参考方案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这么多

以上是关于请求的资源上不存在 Jquery-No 'Access-Control-Allow-Origin' 标头的主要内容,如果未能解决你的问题,请参考以下文章

django中的“请求的资源上不存在'Access-Control-Allow-Origin'标头”

如何解决请求的资源上不存在“Access-Control-Allow-Origin”标头

Http.post 请求的资源上不存在“Access-Control-Allow-Origin”标头

请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头

Angular 2请求的资源上不存在“Access-Control-Allow-Origin”标头[重复]

API 请求错误 - 请求的资源上不存在“Access-Control-Allow-Origin”标头