CORS:否';访问控制允许来源';header-但是php设置头文件


CORS: No 'Access-Control-Allow-Origin' header - but php sets header file

我知道有几个关于cors的问题已经得到了回答。。。但我没有找到解决问题的办法。。。

我在js应用程序中收到以下错误消息(基于jquery/jquery mobile):

加载资源失败:服务器响应状态为500(内部服务器错误)

XMLHttpRequest无法加载http://www.mydomain.de/api.php.请求的资源上不存在"Access Control Allow Origin"标头。因此,不允许访问源"xyz"。响应的HTTP状态代码为500

PHP文件以开头

<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS");
header("Access-Control-Max-Age: 86400");    // cache for 1 day
...

js代码的一部分:

$.ajax({
 type:      'POST',
 crossDomain: true,    
 cache:         false,
 url:       "http://www.mydomain.de/api.php",
 data:      payload,
 dataType:  'json',
 success:   function(a,b,c) { }
});

php页面位于strat.de/php5.7版

有什么解决方案吗?

您可以将dataType用作JsonP

 dataType: 'jsonp'

然后你不会得到错误

在项目中,找到web.config文件。(我在laravel中工作,我在公共路由中找到文件,你可以在不同的路径中获得它),现在在<system.webServer> 之后添加以下代码

<httpProtocol>  
    <customHeaders>  
     <add name="Access-Control-Allow-Origin" value="*" />  
     <add name="Access-Control-Allow-Headers" value="Content-Type" />  
     <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />  
    </customHeaders>  
</httpProtocol>

屏幕截图:写入代码

我认为这将非常有效。

如果第一个解决方案不起作用,那么另一个解决方案是:打开防病毒软件,找到"病毒箱"选项,并在列表中查找文件的server.php,如果找到此文件,则应用还原并添加异常