-1

データを 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);
        });
}

私は何が欠けていますか?

4

2 に答える 2

2

と を渡そうとしていdataますheadersjsonpリクエストのパラメータはurlconfigです。data(他のタイプのリクエストとは異なり)受け入れずheaders、サーバーから返されます。送信しません。リクエストを使用して json 文字列を返すことをお勧めしますpost(これは、ヘッダーを使用する場合です)。

これを読むことをお勧めします

これは、サーバーがリクエストを取得してレスポンスを適切に送信することとは別です。リクエストを送信しようとしている場所がわかりhttp://myapi.com/registrations.jsonませんが、存在しません。

于 2014-04-06T02:22:46.710 に答える
-1

サーバーでクロスドメインを許可していることを確認する必要がありました。どうやらクロスドミアンテストは郵便配達員で機能しますが、実際に試してみると機能しません。

于 2014-04-06T02:47:55.097 に答える