我正在尝试将数据发布到api服务器,但它一直给我404.我在postman中尝试过它并且工作正常。由于跨域问题,我使用JSONP发布数据 这是控制台显示的内容
GET http://myapi.com/registrations.json 404 (Not Found) angular.js:8227
undefined 0 function (name) {
if (!headersObj) headersObj = parseHeaders(headers);
if (name) {
return headersObj[lowercase(name)] || null;
}
return headersObj;
}
Object {method: "JSONP", transformRequest: Array[1], transformResponse: Array[1], url: "http://shipit-integration.herokuapp.com/registrations.json", data: Object…}
data: Object
registration: Object
email: "email@example.com"
password: "pass1234"
__proto__: Object
__proto__: Object
__defineGetter__: function __defineGetter__() { [native code] }
__defineSetter__: function __defineSetter__() { [native code] }
__lookupGetter__: function __lookupGetter__() { [native code] }
__lookupSetter__: function __lookupSetter__() { [native code] }
constructor: function Object() { [native code] }
hasOwnProperty: function hasOwnProperty() { [native code] }
isPrototypeOf: function isPrototypeOf() { [native code] }
propertyIsEnumerable: function propertyIsEnumerable() { [native code] }
toLocaleString: function toLocaleString() { [native code] }
toString: function toString() { [native code] }
valueOf: function valueOf() { [native code] }
get __proto__: function __proto__() { [native code] }
set __proto__: function __proto__() { [native code] }
headers: Object
Accept: "application/json"
Content-Type: "application/json"
__proto__: Object
method: "JSONP"
transformRequest: Array[1]
transformResponse: Array[1]
url: "http://myapi.com/registrations.json"
__proto__: Object
这是我的代码
var data = {
"registration": {
"email": "email@example.com",
"password": "pass1234"
}
};
var headers = {
'Accept': 'application/json',
'Content-Type' : 'application/json'
};
$http({
method: 'JSONP',
url: 'http://myapi.com/registrations.json',
data: data,
headers: headers
}).
success(function (data, status, headers, config) {
console.log(data, status, headers, config);
}).
error(function (data, status, headers, config) {
console.log(data, status, headers, config);
});
}
我错过了什么?
答案 0 :(得分:2)
您正试图通过data
和headers
。 jsonp
请求的参数为url
和config
。它不接受data
(与其他类型的请求不同),并且从服务器返回headers
,您不会将它们发送给它。我建议你使用post
请求并返回json字符串(当你使用标题时)。
我建议你阅读this
除了确保服务器获取您的请求并正确发送响应之外。不确定您尝试向哪个位置发送请求,但http://myapi.com/registrations.json
不存在。
答案 1 :(得分:-1)
我必须确保我在服务器上允许跨域。显然交叉多米尼亚测试工作在邮递员,但不是当你真正尝试。