如何模拟xmlhttprequest得到json响应?
这里回答:
HTTP/1.1 200 OK
Server: nginx/1.1.7
Date: Fri, 06 Jan 2012 10:50:36 GMT
Content-Type: application/x-javascript; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding, Accept-Language,Cookie
Content-Language: ru
Content-Encoding: gzip
这里请求:
GET /community/accounts/?type=table&_=1325847040822&offset=0&limit=25&order_by=name&search=Danzanus&echo=2&id=accounts_index HTTP/1.1
Host: worldoftanks.ru
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
X-Requested-With: XMLHttpRequest
X-CSRFToken: aec8c3f844e930e61e8a1b7f2a51b175
Referer: http://worldoftanks.ru/community/accounts/
Cookie: csrftoken=aec8c3f844e930e61e8a1b7f2a51b175; __utma=1.624357332.1325795055.1325812734.1325847014.4; __utmz=1.1325795055.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); csw_popup=true; csw_top=true; __utmb=1.1.10.1325847014; __utmc=1
网站是http://worldoftanks.com/community/accounts/
我需要获得带有用户个人资料链接的搜索结果。 Firebug(FF 插件)显示这个答案:
{"request_data":{"items":[{"account_url":"/community/accounts/4213704-Danzanus/","abbreviation":"","exp":514111,"name":"Danzanus","clan_url":"","owner":null,"wins":816,"created_at":"2011-11-29","id":4213704,"battles":1626}],"total_count":0,"filtered_count":1,"offset":0,"echo":2},"result":"success"}
我只需要“account_url”。
此代码返回 200 OK 但答案为空:
$.get("http://worldoftanks.ru/community/accounts", { type: "table", _: 1325811501451, offset: "0", limit: "25", order_by: "name", search: "Danzanus", echo: "3", id: "accounts_index" },
function (data) {
alert("Data Loaded: " + data);}
谢谢。
最佳答案
如果这是 web 服务返回的响应,您只需解析 XHR 响应(例如,在 jQuery onsuccess 方法中,它在 Ajax 调用之后调用)并获取 account_url。 否则,如果您想重新创建响应客户端,您应该创建表示响应的 JS 对象,然后将其转换为 JSON 表示形式。然后,您可以从客户端脚本调用返回 JSON 的方法(在本例中为 getMyObjAsJSON)。
这是一个例子
function getMyObj() {
var firstname = 'Michael'
var lastname = 'Jordan'
return { FirstName: firstname, LastName: lastname };}
function getMyObjAsJSON(){
var myObj = getMyObj();
if (myObj == null) {
alert("obj not created");
return;
}
//it converts the object in its JSON rapresentetion
var jsonObj = $.toJSON(myObj);
return jsonObj}
关于C# 模拟 xmlhttprequest 并获取 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757403/