在不同情况下,实际上有一些问题。
所以我连接到与托管RESTful服务器相同的wifi。
我在IntelliJ中打开了一个网页,它在我的机器上创建了一个localhost服务器,以便它可以启动我的网络摄像头。 (当我尝试从我的文件目录中打开网页时,网络摄像头无法启动)
我正在尝试做一个看起来像这样的ajax请求。
$.ajax({ url: 'http://192.xxx.x.xx:xxxx/restful/webapi/enroll', //url: 'http://localhost:63xxx/example-1.0.0.0-samples/', type: 'PUT', contentType: "application/json", processData: false, data: data, dataType: 'json', crossDomain:true, error: function (xhr, status) { if(xhr.status != "201"){ // 201 means it is Created, rather than 200 which means Success $("#statusEnrollmentMsg").text("Fail " + status); console.log(error); }else{ $("#textbox").text("success"); } }, success: function (result) { $("#textbox").text("success"); } });
错误代码
jquery.min.js:4 OPTIONS http://192.xxx.x.xx:xxxx/restful/webapi/enroll
send @ jquery.min.js:4
ajax @ jquery.min.js:4
OnEnroll @ example.js:130
onclick @ example.html:54
example.html:1
XMLHttpRequest cannot load http://192.xxx.x.xx:xxxx/restful/webapi/enroll. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:63xxx' is therefore not allowed access. The response had HTTP status code 404.
我总是得到看起来像这样的错误。 如果不清楚善意评论,我会做出调整。
跨域已经设置为true!
我想将一些json对象发送到此服务器。我不确定这是否也是正确的协议。请指教。
答案 0 :(得分:0)
检查文档:http://api.jquery.com/jQuery.ajax/
crossDomain(对于同域请求,默认值为false,对于 跨域请求)
类型:布尔值
如果您希望强制执行跨域请求(例如JSONP) domain,将crossDomain的值设置为true。这允许,为 例如,服务器端重定向到另一个域。 (版本添加: 1.5)
您的代码应该是这样的
$.ajax({
url: 'http://192.xxx.x.xx:xxxx/restful/webapi/enroll',
type: 'PUT',
crossDomain: true,
contentType: "application/json",
processData: false,
data: data,
dataType: 'json',
crossDomain:true,
error: function (xhr, status) {
if(xhr.status != "201"){ // 201 means it is Created, rather than 200 which means Success
$("#statusEnrollmentMsg").text("Fail " + status);
console.log(error);
}else{
$("#textbox").text("success");
}
},
success: function (result) {
$("#textbox").text("success");
}
});