簡體   English   中英

從angularJS 1.3-beta遷移到1.4后,$ http帖子無效

[英]$http post not working after migration from angularJS 1.3-beta to 1.4

我正在將我的項目從angularjs 1.3 beta遷移到1.4,'$ http get'工作正常,但'$ http post'正在創建問題。 以下是用戶身份驗證代碼,在1.3中工作正常,但在1.4中不工作

factory.authenticate = function (email, password) {
    var payload = {
        email: email,
        password: password
    };
    var rid = Security.reqKey();
    payload['rid'] = rid;
    return $http({
        method: 'POST',
        url: Base_url +'service/auth',
        param: {
            rid:  rid
        },
        data: $.param(payload),
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    });
};

遷移到1.4后會產生錯誤:

POST http:// localhost / 405(不允許)XHR加載失敗:POST

(之前工作正常)

存在這種代碼給出期望結果的情況。 如果我將調試器放在chrome瀏覽器中並按f10運行整個代碼。

根據文件

params - {Object。} - 將使用paramSerializer序列化並附加為GET參數的字符串或對象的映射。

param應該是params ,因此你的數據沒有被序列化,這可以解釋為什么服務器拒絕你的POST(因為post需要比GET更多的特權)。

但即使這可能是不正確的,因為我認為params只適用於GET(但也許它適用於兩者)。

你也不需要jquery $.param() $ http有一個內置的序列化器。 data可以設置為payload

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM