我正在尝试为Chrome创建一个插件,我从多个页面检索信息,其中一些页面有负载均衡器,需要特定的用户代理代码才能将我送到正确的位置。
现在,我正在进行.ajax()
电话,我尝试过以下几项内容:
$.ajaxSetup({
beforeSend: function(request) {
request.setRequestHeader("User-Agent","MyAgentCode");
}
});
但是它不起作用。
我也尝试过:
$.ajax({
url: "http://blablabla.com/",
dataType:'html',
beforeSend: function (req) {
req.setRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1 MyAgentCode);
},
error: function() { alert("No data found");},
success: parseResult
});
哪个也不起作用。
我只想为User-Agent
添加一个值(保持原样)。这将允许我从正确的服务器获取正确的信息。
答案 0 :(得分:2)
您可以使用header [],这比使用beforeSend更容易。只需按Ctrl-F'标题'here。
答案 1 :(得分:1)
如果我理解正确您的问题,您可以使用webRequest Chrome API。 “使用chrome.webRequest模块拦截,阻止或修改飞行中的请求,并观察和分析流量。
http://developer.chrome.com/trunk/extensions/webRequest.html
有一个示例如何删除User-Agent。您可以使用您的值更改requestHeader的值,而不是删除。
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]);
答案 2 :(得分:0)
考虑:
如果您想提出GET请求,请删除/修改type: "POST"
。
使用BeforeSend
和headers
编辑标题有两种方法。它们都适用于$.ajax()
和$.post()
方法。
示例1:
$.post({
url: "http://localhost:4000",
data: "we=1",
headers: {"User-Agent": "user agent 1"}
});
示例2:
$.ajax({
url: "http://localhost:4000",
type: "POST",
data: {we: "2"},
dataType:'text', // case you wanna especify the return type
headers: {"User-Agent": "user agent 2"}
});
使用标题似乎更容易,也许只是对BeforeSend方法的一个重点:
$.ajax({
url: "http://localhost:4000",
type: "POST",
data: {we: "2"},
dataType:'text',
headers: {"User-Agent": "user agent 1"}
beforeSend: function (req) {
req.setRequestHeader('User-Agent', 'user agent changed to 2');
}
});
如果你想检查结果......有点像这样添加:
error: function() { alert("No data found");},
success: function() { alert("uh yead");}
但是使用Firefox / Chrome开发工具(f12 - &gt;网络标签)就足够了。 在zip文件中,我已经包含了PHP服务器启动命令和一个index.php文件来转储标题。
上传完整的工作示例文件集:https://files.fm/u/4x3fc8ru
问候。