【发布时间】:2013-06-15 03:28:24
【问题描述】:
我需要做一个 getJSON 请求,但我如何传递授权和自定义标头?授权值是保存在 cookie.txt 中的 asp.net sessionID(ASP.NET_SessionId:drfgjsdfkgdff4534),自定义标头是用户代理 (MozillaXYZ/1.0)。
谁能告诉我如何通过 getjson 请求发送 sessionID 值和自定义标头?
在 php 中,我们从 cookie 和自定义标头用户代理发送 sessionId,如下所示:
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0"
但是如何使用 getjson 发送这 3 个标头项?
<script>
$.getJSON('http://anyorigin.com/get?url=http://www.someremotesite.com/page3.php&callback=?', function(data){
//$('#output').html(data.contents);
var siteContents = data.contents;
//writes to textarea
document.myform.outputtext.value = siteContents ;
</script>
已编辑:我使用 ajax 而不是 getjson,但在使用 beforeSend 之后,ajax 停止提取数据!谁能告诉我出了什么问题?
<html>
<head>
<script src="http://anyorigin.com/jquery-1.4.2.min.js"></script>
<script>
$.ajax({
url: 'http://anyorigin.com/get?url=http://www.someremotesite.com/page3.php&callback=?',
type: 'GET',
dataType: "json",
success: displayAll
beforeSend: setHeader
});
function displayAll(data){
// alert(data.contents);
document.myform2.outputtext2.value = data.contents ;
}
function setHeader(xhr) {
xhr.setRequestHeader('ASP.NET_SessionId', 'rtretretertret43545435454');
}
</script>
</head>
<body>
<br>
<form id="myform2" name="myform2" action="./3.php?Id=&title=test" method="post">
<td><textarea rows="14" cols="15" name="outputtext2" style="width: 99%;"></textarea></td>
</form>
</html>
【问题讨论】:
-
阅读 jQuery $.ajax 函数的整个文档,您需要使用它而不是 $.getJSON 来使用其他选项。
-
感谢您的回复。如果我使用 $ajax 仍然可以使用跨域 anyorgin.com 服务?
-
可能。你必须尝试一下。我这么说是因为
$.getJSON只是在内部调用$.ajax。 -
谢谢我试过 ajax 可以使用 anyorgin.com 服务,但现在我如何通过 ajax 请求从 cookies.txt 发送 sessionIdv 的值?有没有关于如何使用 $.ajax 发送自定义标头和 cookie 值的示例?
-
文档中描述了标题。 Cookie 是通过标准 Javascript cookie 机制设置的,并与使用的 URL 相关联。
标签: javascript cookies session-cookies getjson