我已经看过一千个解决CORS的线程,但没有一个帮助过。我有一个无法发出ajax请求的phonegap应用程序,因为它似乎正在通过代理。 ajax非常简单。
{
TUpdateScreenCursor sc(crHourGlass);
try
{
throw Exception("error!");
}
catch (const Exception& e)
{
Application->MessageBox(e.Message.c_str(), _D("Error"), MB_OK);
}
}
当我$.ajax({
url : base_url + "submit_git",
type : "GET",
crossDomain: true,
data : {
firstName: firstName,
lastName : lastName,
email : email,
phone : phone,
comments : comments
},
dataType : "json"
});
网址时,它会给我正确的网址。当我按下url时,它返回正确的json,没有500错误。当我查看控制台时,我看到我正在使用console.log
请求预先添加的网址。在此之后,我返回一个空白页面,并在控制台中出现500错误。所以看起来不知何故,phonegap认为我想要通过这个代理。当我查看phonegap日志时,我看到了
http://192.168.1.109:3000/proxy/
我添加了cordova白名单插件并添加了Proxy error for url: http://correcturl.com/page?query undefined
500 http://correcturl.com/page?query
,但这没有做任何事情。
我添加了
<access origin="*" subdomains="true" />
这没有做任何事。
我将$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
添加到.htaccess,这没有做任何事。
我将ProxyRequests Off
添加到我的头上,这没有做任何事。
我我能够在没有任何问题的情况下对同一台服务器执行jsonp请求。有什么想法吗?
更新1 :
我发现只有在使用<meta http-equiv="Content-Security-Policy" content="connect-src *" />
命令并遵循给定的IP时才会发生这种情况。我能够删除所有的phonegap文件,只上传我的html,css和js,请求工作正常。
更新2 :
好吧,我决定在常规的Web服务器上进行开发和调试。 localhost,然后通过压缩我的www文件夹w / phonegap创建的内容,将我的更改提交到build.phonegap.com。从技术上讲,这不是原始问题的解决方案,但它允许我开发,调试然后在我的手机上进行测试。