【问题标题】:How to pass authorization value from cookie file and custom headers to getjson?如何将授权值从 cookie 文件和自定义标头传递给 getjson?
【发布时间】: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


【解决方案1】:

试试这个来设置标题:

$.ajax({
    url: 'http://something.com/ajax',
    type: 'GET',
    dataType: "json",
    success: displayAll,
    headers : {
        'ASP.NET_SessionId': 'rtretretertret43545435454'
    }
});

不要忘记在 'displayAll' 之后添加逗号,因为它在您的问题中缺失。

【讨论】:

  • 谢谢李。但由于某种原因,我没有得到受保护的页面!似乎 sessionId 没有通过 anayorgion.com 服务发送到远程站点,或者我缺少其他东西。在 php 中发送整个 cookie.txt 绕过了登录但不在这里!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
相关资源
最近更新 更多