Android 由于CORS,从浏览器对Rest Web服务的Ajax Post调用无法工作
我试图通过broswer的web服务将数据插入数据库,但我收到了错误(屏幕截图)。Android 由于CORS,从浏览器对Rest Web服务的Ajax Post调用无法工作,android,ajax,cordova,cors,phonegap-plugins,Android,Ajax,Cordova,Cors,Phonegap Plugins,我试图通过broswer的web服务将数据插入数据库,但我收到了错误(屏幕截图)。 $("#signup").click(function () { var radio = $('input[name="radio"]:checked').val(); var fullname = $("#fullname").val(); var email = $("#email").val(); var
$("#signup").click(function () {
var radio = $('input[name="radio"]:checked').val();
var fullname = $("#fullname").val();
var email = $("#email").val();
var phoneno = $("#phoneno").val();
var password = $("#password").val();
var dataString = "{'Cust_Type':'" + radio + "','Contact_Name':'" + fullname + "','Contact_No':'" + phoneno + "','Email':'" + email + "','Password':'" + password + "'}";
if ($.trim(radio).length > 0 & $.trim(fullname).length > 0 & $.trim(phoneno).length > 0 & $.trim(email).length > 0 & $.trim(password).length > 0) {
$.post({
type: "POST",
url: "http://test.com/testWebservices/testservices.svc/mobilesignup",
dataType: "json",
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function () { $("#signup").val('Connecting...'); },
success: function (data) {
if (data == "success") {
alert("Thank you for Registering with us! you can login now");
}
else if (data = "exist") {
alert("Hey! You alreay has account! you can login with us");
}
else if (data = "failed") {
alert("Something Went wrong");
}
}
});
} return false;
});
我正在使用phonegap从broswer调用服务api(不工作),但当我尝试从postman插件调用服务api时,它会工作,数据会成功插入数据库。如果Test.com网站位于IIS7
$("#signup").click(function () {
var radio = $('input[name="radio"]:checked').val();
var fullname = $("#fullname").val();
var email = $("#email").val();
var phoneno = $("#phoneno").val();
var password = $("#password").val();
var dataString = "{'Cust_Type':'" + radio + "','Contact_Name':'" + fullname + "','Contact_No':'" + phoneno + "','Email':'" + email + "','Password':'" + password + "'}";
if ($.trim(radio).length > 0 & $.trim(fullname).length > 0 & $.trim(phoneno).length > 0 & $.trim(email).length > 0 & $.trim(password).length > 0) {
$.post({
type: "POST",
url: "http://test.com/testWebservices/testservices.svc/mobilesignup",
dataType: "json",
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function () { $("#signup").val('Connecting...'); },
success: function (data) {
if (data == "success") {
alert("Thank you for Registering with us! you can login now");
}
else if (data = "exist") {
alert("Hey! You alreay has account! you can login with us");
}
else if (data = "failed") {
alert("Something Went wrong");
}
}
});
} return false;
});
在应用程序()的根目录上创建Web.config
文件,并在其中添加以下XML代码
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
更新:
适用于IIS6
Access Control Allow Origin
作为标题名*
作为标题值您的js文件是否托管在Web服务器(如IIS)上?否。iam正在使用phonegap.创建apk文件。站点test.com的宿主是哪个web服务器?iis服务器。仅宿主该服务。请在真实设备上尝试,而不是在浏览器上。我正在使用iis 6。但我已在web.config中使用此代码。获取此错误“阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:CORS标头“缺少访问控制允许来源)”“请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“null”。响应的HTTP状态代码为“for chrome当我将此行放入web.config时,我收到500个内部服务器错误。并且网站未打开。请继续执行IIS6的步骤并重新启动IIS服务器。