我已閱讀了一些StackOverflow帖子,使用了它,但仍無法獲得我想要的內容。無法從XMLHttpRequest獲取JSON輸出
我只是想從谷歌的API一個JSON並將其導入到一個變量,所以我可以過濾它的方式我想,下面的代碼是我到目前爲止有:
<!DOCTYPE html>
<html>
<body>
Term: <input type="text" id="field1" value="Mc Donalds in New York"><br>
<button onclick="myFunction()">Search</button>
<script>
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
xhr.open(method, url, true);
xhr.responseType = 'json';
} else if (typeof XDomainRequest != "undefined") {
xhr = new XDomainRequest();
xhr.open(method, url);
xhr.responseType = 'json';
} else {
xhr = null;
}
return xhr;
}
function myFunction() {
var termo = document.getElementById("field1").value;
var URL = "https://maps.googleapis.com/maps/api/place/textsearch/json?query="+termo.replace(" ","+")+"&key=HIDDEN_KEY";
var data = createCORSRequest('GET',URL);
if (!data) {
throw new Error('CORS not supported');
}
}
</script>
</body>
</html>
當我做:
console.log(data);
我得到:
當我這樣做:
JSON.parse(data.responseText);
我得到:
未捕獲拋出:DOMException:無法讀取 '的XMLHttpRequest' 的 'responseText的' 屬性:值只有當對象的 '的responseType' 是受影響''或'text'(是'json')。
我應該得到的console.log: https://pastebin.com/4H7MAMcM
如何從XMLHttpRequest的獲得JSON是否正確?
另外值得一提的是,我使用跨源資源共享(CORS),因爲我無法從本地IP訪問域。
- 編輯 - 菲爾認爲這是一個無法從異步返回響應的問題,但它錯了,我試過使用Ajax,XMLHttpRequest,現在使用CORS,重複記法是不正確的,請刪除它。
獲取選項而不是XMLHttprequest? https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch – mkaatman
Fetch沒有做這份工作@mkaatman –