【发布时间】:2017-09-08 22:27:35
【问题描述】:
我正在制作一个 Cordova 应用程序。我有一个电子邮件发送功能,当我在 chrome 中测试我的应用程序时,我收到以下错误:
请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'null'。
我已经查看了堆栈溢出,但无法找到解决方案。我没有看到任何工作。有人说这个问题是chrome和其他浏览器特有的。如果当我在 android 上运行我的应用程序时只有浏览器出现问题,那么一切都应该没问题,并且应该发送电子邮件,对吗?如果你想看,下面是代码:
var message = localStorage.getItem("Message");
var key = "xxthisisakeyxx";
var message_name = "send_message";
var data = {};
data.value1 = message;
data.value2 = localStorage.getItem("AdminsEmail");
var url = "https://example.com/trigger/" + message_name + "/with/key/" + key;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
if (xmlhttp.status == 200) {
console.log("Message Sent");
console.log(JSON.stringify(XMLHttpRequest));
}
}
}
xmlhttp.open('POST', url, true);
xmlhttp.setRequestHeader( 'Access-Control-Allow-Origin', "http://localhost:8000");
xmlhttp.setRequestHeader( 'Content-Type', 'application/json' );
xmlhttp.responseType = 'json';
xmlhttp.send(new FormData(data));
谢谢
【问题讨论】:
-
@JaromandaX ...谢谢,但这只是chrome的问题吗?如果是手机上的应用,还会出现这个问题吗?
-
我只指浏览器*,而不仅仅是 chrome。这个问题会出现在android上吗?
-
不,不是 android 上的浏览器。当我在 android 上构建并运行它作为应用程序时,它会遇到同样的问题吗?
-
哦,抱歉,完全误解了这个问题(我将删除我关于 CORS 的 cmets) - 抱歉,我对原生 android 应用了解不多,无法提供帮助
标签: javascript android cordova google-chrome email