【发布时间】:2015-01-26 22:53:44
【问题描述】:
我在后端有 REST api。我需要发出 ajax 请求来发布一些数据,然后我写:
$(function() {
$('#createPin').click(function(e) {
e.preventDefault();
var urlAjax = "http://www.agroagro.com/test/v1/register";
$.ajax({
type: "POST",
url: urlAjax,
contentType: "application/x-www-form-urlencoded",
data: {
name: "Mile3",
email: "new1@new.com",
password: "face1book"
},
crossDomain:true,
success: function(data) { console.log(data); },
error: function(data) {console.log(data); },
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
},
headers: {
'Access-Control-Allow-Origin': '*'
}
});
});
});
但点击后我得到:
OPTIONS http://www.agroagro.com/test/v1/register jquery-latest.min.js:4 sendjquery-latest.min.js:4 m.extend.ajaxtest.html:114 (anonymous function)jquery-latest.min.js:3 m.event.dispatchjquery-latest.min.js:3 r.handle
XMLHttpRequest cannot load http://www.agroagro.com/test/v1/register. Invalid HTTP status code 404
Object {readyState: 0, getResponseHeader: function, getAllResponseHeaders: function,
setRequestHeader: function, overrideMimeType: function…}
但是当我尝试在Chrome Advanced Rest Client extension 上运行http://www.agroagro.com/test/v1/register 时,一切正常......如何以及为什么?我的 ajax 请求有什么问题?
查看图片:http://i.imgur.com/Ms0oBK9.png - 正如您所见,所有跨域扩展都非常有效。
【问题讨论】:
-
尝试通过发送源头和用户代理头来伪造请求
-
请在此处显示示例
-
记录ajax请求/响应(使用开发者工具中的网络标签)并在这里分享。
-
Chrome Rest 客户端扩展运行良好而我的 ajax 请求未见,这太奇怪了:i.imgur.com/Ms0oBK9.png
标签: jquery ajax rest cross-domain http-status-code-404