我知道JSON可以用來代替Javascript中的XMLHttpRequest,但是我可以提出請求並獲得完全隨意的數據嗎?您可以在XML和XMLHttpRequest之外使用其他格式嗎?
像自定義文本或二進制格式?
或者是接口限於jSON和XML?
我希望我通過什麼我不知道在這裏得到...
一)如何創建無XML或JSON一個普通的要求嗎?
b)如何以普通字符串的形式訪問結果(答案),而不是對象?
我知道JSON可以用來代替Javascript中的XMLHttpRequest,但是我可以提出請求並獲得完全隨意的數據嗎?您可以在XML和XMLHttpRequest之外使用其他格式嗎?
像自定義文本或二進制格式?
或者是接口限於jSON和XML?
我希望我通過什麼我不知道在這裏得到...
一)如何創建無XML或JSON一個普通的要求嗎?
b)如何以普通字符串的形式訪問結果(答案),而不是對象?
是的,剛纔設置的內容類型:
var request = new XMLHttpRequest();
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); // whatever character set you need.
request.open("GET", "yourtext.txt", true);
request.onreadystatechange = function() {
if(this.readyState == 2) {
alert(request.responseText);
}
}
request.send();
您可以使用任何基於文本的格式:XML,JSON,CSV或text/plain
。
我不確定如果您嘗試使用二進制格式會發生什麼情況。
如在7位ASCII? – 2010-07-14 13:45:29
我相信它應該能夠解釋任何編碼瀏覽器的字符可以解碼並以Javascript自己的Unicode編碼返回它。 – thomasrutter 2010-07-14 13:53:48
要以跨瀏覽器的方式下載XMLHttpRequest的二進制數據,請參閱此答案。 http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest/5913807#5913807 – Cheeso 2011-05-06 15:52:21
你可以得到的結果早在
某些瀏覽器也可以將它作爲對象返回,如果它是JSON。
以字符串的形式取回任何東西的能力允許您自己解析任何格式。
如何告訴它我想要的是一個字符串?您的回答實際上是迄今爲止最好的答案,但其他人對此請求也非常感興趣。我不知道我也應該問這個問題。:-) – 2010-07-14 14:01:12
只讀取responseXML屬性,而不讀取responseText屬性。這裏詳細說明:https://developer.mozilla.org/en/xmlhttprequest – thomasrutter 2010-07-14 14:15:10
您可以設置內容的send()之前顯式類型爲純文本:
var request = new XMLHttpRequest();
request.open("POST", "/test.php");
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
request.send(message);
除了職位提setRequestHeader
方法:似乎xmlhttprequest
API的w3規範僅對header
(即第一個參數)施加(建議的)限制,但對value
(即第二個參數)僅施加(建議的)限制。
以下是規格鏈接:http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method。
AFAIC,這意味着就所請求的傳輸而言,任何數據類型都是有效的。這不會擴展到返回的數據,但只有text和xml被指定。
雖然我可能是錯的。
謝謝!這非常有用。 – 2010-07-14 13:59:47
而我怎麼得到結果作爲一個純字符串,而不是一個對象? – 2010-07-14 14:02:40
通過編輯向您展示如何獲取響應文本。 – Andir 2010-07-14 14:11:55