今天工作的時候遇到一個坑,在客戶端用nodejs給服務器發送HTTP請求,服務器老是報錯:In the context of Data Services an unknown internal server error occurred
經過服務器端調試發現,服務器根本就沒有正確解析出這個請求的content-type。在postman里能工作的場景下,正確解析出的content-type是multipart/mixed:
而我的nodejs代碼里明明指定了這個content-type的啊?
經過一行行代碼分析,最后發現問題出在第63行的json字段的值。我錯誤的賦成了true。
這個參數起什么作用?調試一下就知道了。如果為true,進入第403行。
如果請求內部有entity的content-type不是application/x-www-form-urlencoded, 則進入第1293行。
safeStringify的實現邏輯就是瀏覽器原生的JSON.stringify, 把應用程序傳入的json對象序列化成字符串。但是我的代碼里,傳入request module的請求體是一個字符串,而json參數設的又是true,所以邏輯上就不對了。把這個json參數的值改為false后,一切正常。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":