在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ AJAX 發(fā)送 json 數(shù)據(jù) PUT 請求其他域問題.

AJAX 發(fā)送 json 數(shù)據(jù) PUT 請求其他域問題.

使用 node 的 hapi 框架,起了 API service. 再在一個(gè)項(xiàng)目里面通過 ajax 去請求這個(gè) API 發(fā)生跨域問題.

route.options.cors
Default value: false (no CORS headers).

The Cross-Origin Resource Sharing protocol allows browsers to make cross-origin API calls. CORS is required by web applications running inside a browser which are loaded from a different domain than the API server. To enable, set cors to true

這個(gè)是 hapi 的文檔,開啟這個(gè)就可以允許 ajax 的跨域請求了.

實(shí)際上,確實(shí)也可以成功的發(fā)送了 ajax 的 get 請求.如圖:

clipboard.png

問題出現(xiàn)在 發(fā)送 PUT 請求:

clipboard.png

看起來是不允許我發(fā)送 MIME type application/json 數(shù)據(jù).

那我把 ajax 函數(shù)里面的

headers:{
            contentType:"application/json"
          },

去掉再請求:

clipboard.png

發(fā)現(xiàn)已被允許請求.

返回 500 是因?yàn)?我的 API 是按 json 接受解析的. 比如 user 下 id 的值 是 this.request.payload.User.id 來獲取的. 但是如果是 x-www-from 格式的數(shù)據(jù), 則要改變?yōu)? this.request.payload.User[id] 來獲取.

我想知道這個(gè) put 發(fā)送 json 數(shù)據(jù)的請求不被允許是哪里出了問題.

回答
編輯回答
脾氣硬

2018年5月10日 22:32
編輯回答
空白格

cors 選項(xiàng)配一下 additionalHeaders.

cors: {
    additionalHeaders: ['Content-Type']
}

這樣你客戶端就可以帶 contentType:"application/json" 頭了

2018年8月22日 11:37