json响应位于{"userName":"clevermeal835","userRole":"Participant"}
我收到一条警报信息表示成功,但在阅读回复时我收到错误:
XMLHttpRequest无法加载url不允许使用Origin null 访问控制允许来源。
如果我通过
从命令提示符运行代码- 禁用-web的安全
我得到了回应。 任何人都可以使用命令提示符帮助我解决此问题。 以下代码。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="Scripts/jquery-1.4.2.min.js"></script>
<script>
$(document).ready(
function() {
$("#jsonpbtn2").click(function() {
var uid = "clevermeal835";
var pwd = "Welcome_1";
var userType = "participant";
var surl="http://localhost:8080/RESTlet_WS/MobiSignIn/{\"userName\":\""+uid+"\",\"password\":\""+pwd+"\",\"userType\":\""+userType+"\"}/";
$.ajax({
type : 'GET',
contentType: "application/json; charset=utf-8",
url : surl,
dataType : 'json',
headers : {Accept : "application/json","Access-Control-Allow-Origin" : "*"},
crossDomain : true,
success :SucceedFunc ,
error : function(data, textStatus, errorThrown) {
console.log("error"+' '+JSON.stringify(data) + textStatus + errorThrown);}
});
function SucceedFunc(data) {
alert("success");
var userName = data.userName;
alert(userName);
}
});
});
</script>
</head>
<body>
<input id="jsonpbtn2" type="submit" value="button" />
</body>
</body>
</html>
答案 0 :(得分:4)
您似乎是通过Chrome浏览器中file://
上的网页提供网站来测试您的网站。出于安全原因,Chrome不允许您从file://
资源执行Ajax调用。
此处的安全威胁是,有人可以通过电子邮件向您发送.html
文件,该文件在使用file://
打开时发出Ajax请求以获取电子邮件收件箱中的内容(如果允许查询网页) )或您计算机上的其他文件(如果允许查询其他文件资源)。
您应该通过在为您的API网页提供服务的同一localhost:8080
服务器上提供网页来测试您的网页。
答案 1 :(得分:-1)
尝试添加:
beforeSend: function( xhr ) {
xhr.overrideMimeType( 'text/plain; charset=UTF-8' );
}
到你的Ajax电话。