我知道有几个问题关于cors已经被解答/回答......但是我找不到解决问题的方法......
我在js应用程序中收到以下错误消息(基于jquery / jquery mobile):
无法加载资源:服务器响应状态为500(内部服务器错误)
XMLHttpRequest无法加载http://www.mydomain.de/api.php。 No' 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页面托管在strato.de / php version 5.7
任何解决方案?
答案 0 :(得分:1)
您可以将dataType用作JsonP
dataType: 'jsonp'
然后你没有得到错误
答案 1 :(得分:0)
在您的项目中,找到文件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>
我认为这会很好地工作。
答案 2 :(得分:0)
如果第一个解决方案不起作用,则另一个解决方案是: 打开您的防病毒软件,找到“ 病毒箱”选项,并在列表中查找文件“ 'server.php” ,如果找到此文件,则应用还原并添加例外。