簡體   English   中英

JSON-RPC 不適用於 $http.POST

[英]JSON-RPC is not working with $http.POST

我正在開發一個離子混合移動應用程序並嘗試在 JSON-RPC 服務中發布數據,但我收到“ 500 內部服務器錯誤

        var req = {

        url: 'http://192.118.1.214:8080/remote/json-rpc',
        headers: {
            'content-type': 'application/json;charset=utf-8',
            'cache-control': 'no-cache, no-store, must-revalidate, max-age=0'
        },

        data: { jsonrpc: "2.0", id: 2, method: "HDAccess/getDevices", params: [null] }
    }


    $http(req).then(function (res) { alert(res); return res; },
                    function (er) { alert(er); });  

這是來自 webconsole 的請求詳細信息。 我使用了 chrome CORS 插件來避免“CORS”問題

Request URL:http://192.118.1.214:8080/remote/json-rpc
Request Method:OPTIONS
Status Code:500 Internal Server Error
Remote Address:192.118.1.214:8080
Response Headers
view source
cache-control:no-cache, no-store, must-revalidate, max-age=0
content-length:810
content-type:text/html; charset=UTF-8
date:Tue, 01 Mar 2016 08:00:50 GMT
pragma:no-cache
Request Headers
view source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Access-Control-Request-Headers:accept, cache-control, content-type
Access-Control-Request-Method:GET
Connection:keep-alive
Host:192.118.1.214:8080
Origin:http://evil.com/
Referer:http://localhost:8100/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

我在 POSTMAN 擴展中使用了相同的 url 和 post 方法並得到了工作,但它在上面的代碼中不起作用。

在下面找到 POSTMAN 輸入

在此處輸入圖片說明

我有三個疑問:

1.為什么上述請求細節中沒有提到數據。

2.為什么該方法顯示為“選項”但我使用的是“POST”方法

3.為什么它不能通過代碼工作,但在 chrome POSTMAN 擴展客戶端中工作正常

請指導我解決這個問題。

為什么上述請求詳細信息中未提及數據。

如果服務器以許可響應 OPTIONS 請求,則數據將位於瀏覽器將發送的 POST/PUT 請求中。

為什么該方法顯示為“選項”但我使用的是“POST”方法

由於您使用 JSON 格式的正文發送請求,因此您正在觸發預檢 OPTIONS 請求。

另請參閱為什么我收到 OPTIONS 請求而不是 GET 請求?

我使用了 chrome CORS 插件來避免“CORS”問題

...它似乎無法處理 OPTIONS 請求,至少在服務器響應500 Internal Server Error

修復您的服務器,使其能夠響應 OPTIONS 請求。

為什么它不能通過代碼工作,但在 chrome POSTMAN 擴展客戶端中工作正常

因為當您使用 Postman 時,沒有涉及第三方,因此無需擔心信任問題。 另請參閱XMLHttpRequest 無法加載 https://www.[website].com/

暫無
暫無

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

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