当前位置: 首页 > 知识库问答 >
问题:

缺少CORS标头“access-control-allow-origin”

卫宁
2023-03-14

我从ASP.NET表单中调用这个函数,在调用Ajax时在firebug控制台中得到以下错误。

跨源请求被阻止:同一源策略不允许读取http://anotherdomain/test.json上的远程资源。(原因:CORS标头“Access-Control-Allow-Origin”丢失)。

var url= 'http://anotherdomain/test.json';
        $.ajax({
            url: url,
            crossOrigin: true,
            type: 'GET',
            xhrFields: { withCredentials: true },
            accept: 'application/json'
        }).done(function (data) {
            alert(data);                
        }).fail(function (xhr, textStatus, error) {
            var title, message;
            switch (xhr.status) {
                case 403:
                    title = xhr.responseJSON.errorSummary;
                    message = 'Please login to your server before running the test.';
                    break;
                default:
                    title = 'Invalid URL or Cross-Origin Request Blocked';
                    message = 'You must explictly add this site (' + window.location.origin + ') to the list of allowed websites in your server.';
                    break;
            }
        });

我做了其他的方法,但仍然找不到解决办法。

注意:我没有服务器权限进行服务器端(API/URL)更改。

共有1个答案

荆树
2023-03-14

当您尝试访问另一个域的资源时,通常会发生这种情况。

这是一个安全特性,可以避免每个人自由访问该域的任何资源(例如,可以在盗版域上访问与您的网站完全相同的副本)。

响应的头,即使是200OK,也不允许其他源(域、端口)访问resources。

如果您是两个域的所有者,则可以修复此问题:

若要更改,您可以在请求的域文件的.htaccess中写入以下内容:

    <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    </IfModule>

如果您只想授予对一个域的访问权限,那么.htaccess应该如下所示:

    <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin 'https://my-domain.tdl'
    </IfModule>

如果您将此设置到所请求文件的响应头中,您将允许每个人访问resSources:

Access-Control-Allow-Origin : *

Access-Control-Allow-Origin : http://www.my-domain.com

和平与守则;)

 类似资料:
  • 大家好,我有一个问题,我不能从客户机获得JSON值。我已经创建了WCF REST服务,并在客户机的IIS中添加了该服务。从客户机,打开我的网站,这个方法readIndicator被触发。但是收到了一个错误消息。我已经在web.config添加了Access-Control-Allog-Origin。 WCF web.config 我已经用我自己的电脑试过了,没问题。我不知道我犯了什么错误。我希望你

  • 在我的web应用程序中,尝试用ajax调用将数据传递到另一个域。但是它显示了类似于 我的ajax代码是,

  • 问题内容: 我有两个VS项目:一个公开MVC5控制器,另一个是有角度的客户端。我希望有角度的客户端能够查询控制器。我阅读了许多主题,并尝试了以下方法: 我将此添加到服务器的Web配置中: 我在控制器的操作上创建并使用了以下过滤器: 在有角度的客户端中,我创建了以下拦截器: 根据Firebug,这导致以下请求: 以及以下响应: 而且,Firefox使用以下消息阻止请求: 问题答案: 通常,我阅读的线

  • 当我尝试设置时,我得到一个CORS错误原因:CORS头'access-control-allog-origin'丢失 下面是我在Spring MVC中的Cors重写:

  • Response.AddHeader(“Access-Control-Allow-Origin”,“*”)是如何实现的;行设置多个标题时,包括,但没有当我删除它?

  • 问题内容: 将web.xml移植到Java配置后出现以下问题 根据一些Spring参考,尝试了以下尝试: 所选择的值来自有效的web.xml过滤器: 有什么想法为什么Spring java config方法不能像web.xml文件那样工作? 问题答案: 将CorsMapping从更改方法。 为整个应用程序启用CORS很简单: 你可以轻松更改任何属性,以及仅将此CORS配置应用于特定的路径模式: 控