找不到角度http服务网址的问题

时间:2014-04-06 02:03:02

标签: javascript angularjs angularjs-directive angularjs-scope angular-services

我正在尝试将数据发布到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);
        });
}

我错过了什么?

2 个答案:

答案 0 :(得分:2)

您正试图通过dataheadersjsonp请求的参数为urlconfig。它不接受data(与其他类型的请求不同),并且从服务器返回headers,您不会将它们发送给它。我建议你使用post请求并返回json字符串(当你使用标题时)。

我建议你阅读this

除了确保服务器获取您的请求并正确发送响应之外。不确定您尝试向哪个位置发送请求,但http://myapi.com/registrations.json不存在。

答案 1 :(得分:-1)

我必须确保我在服务器上允许跨域。显然交叉多米尼亚测试工作在邮递员,但不是当你真正尝试。