我知道有几个关于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,如果找到此文件,则应用还原并添加异常。