我創建了一個連接到Watson REST API的React-Native應用程序。使用提取庫是ReactNative的一部分,一切都被用於獲取工作區列表,像這樣的工作很好:IBM Watson(對話)帶有提取的REST API(whatwg-fetch)
const myAuth = new Buffer(USR+':'+PWD).toString('base64');
const myInit = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Origin': '',
'Authorization': 'Basic ' + myAuth,
}
};
return fetch(URL, myInit)
.then((response) => response.json())
.then((responseJson) => { ... }
我現在正反應(而不是ReactNative)和whatwg-fetch庫。相同的代碼不起作用。首先,我得到的錯誤是:
請求標頭字段預檢響應中的Access-Control-Allow-Headers不允許授權。
然後閱讀關於這些類型的問題的幾十個線程就變成了黑魔法。爲Access-Control-Allow-Methods,Access-Control-Allow-Headers等添加標題。到目前爲止還沒有真正起作用最終問題變爲:
預檢響應中的Access-Control-Allow-Headers不允許請求標頭字段access-control-allow-headers。
有人能指點我一個例子或代碼,請工作嗎?
==============
更新...
謝謝@sideshowbarker和@FakeRainBrigand。我想,然後服務器端是瀏覽器客戶端應用程序的必須。
那麼爲什麼它與React-Native fetch @FakeRainBrigand一起工作呢? – TalBeno
React-Native應用程序在相同來源的Web安全模型之外運行,以防止Web應用程序發出跨域請求(除非該站點通過使用「Access-Control-Allow-Origin」標頭響應來發送請求。 React運行在瀏覽器中的web-app代碼中,瀏覽器是唯一實施跨源/ CORS限制的地方。React-Native應用程序在瀏覽器外部運行,因此它們不受任何跨源限制的約束實際上不是從任何原點開始運行的,所以「交叉原點」的概念不適用於它們。 – sideshowbarker