Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery发送带有标题的Ajax GET并在新窗口/选项卡中打开_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript JQuery发送带有标题的Ajax GET并在新窗口/选项卡中打开

Javascript JQuery发送带有标题的Ajax GET并在新窗口/选项卡中打开,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在发送一个AJAX GET请求,其中传递了一些头参数。不是URL参数,而是以下列方式的标题: $.ajax({ url: "http://localhost/myendpoint/ABCDE-12345", headers: { 'X-Auth-Token' : myTokenId}, type: "GET", success: function() {

我正在发送一个AJAX GET请求,其中传递了一些头参数。不是URL参数,而是以下列方式的标题:

$.ajax({
         url: "http://localhost/myendpoint/ABCDE-12345",
         headers: { 'X-Auth-Token' : myTokenId},             
         type: "GET",
         success: function() { 

                  }
         });
此端点返回一个文件,但需要通过传递到请求头中的OAuth令牌进行身份验证。 当请求被返回时,我应该将返回的文件显示在浏览器的新选项卡/窗口中。这可能吗

在没有身份验证的情况下,我们可以通过以下方式发送请求:

window.open('http://localhost/myendpoint/ABCDE-12345', '_blank')

将此函数添加到js:

      function submit_post_via_hidden_form(url, params) {
           var f = $("<form target='_blank' method='POST' style='display:none;'></form>").attr({
               action: url
           }).appendTo(document.body);

            for (var i in params) {
              if (params.hasOwnProperty(i)) {
                 $('<input type="hidden" />').attr({
                    name: i,
                    value: params[i]
                 }).appendTo(f);
              }
        }

        f.submit();

        f.remove();
    }
现在创建
preview.php

<?php 

    if (isset($_POST['preview'])){
        echo $_POST['preview'];
     }
?>

将此函数添加到js:

      function submit_post_via_hidden_form(url, params) {
           var f = $("<form target='_blank' method='POST' style='display:none;'></form>").attr({
               action: url
           }).appendTo(document.body);

            for (var i in params) {
              if (params.hasOwnProperty(i)) {
                 $('<input type="hidden" />').attr({
                    name: i,
                    value: params[i]
                 }).appendTo(f);
              }
        }

        f.submit();

        f.remove();
    }
现在创建
preview.php

<?php 

    if (isset($_POST['preview'])){
        echo $_POST['preview'];
     }
?>


如果需要生成新选项卡,为什么要发送ajax?因为我需要将“头”传递到请求中。有没有其他方法可以在不使用$.Ajax的情况下将头传递到GET/POST请求中?如果需要生成新的选项卡,为什么要发送Ajax?因为我需要将“头”传递到请求中。有没有其他方法可以在不使用$.Ajax的情况下将头传递到GET/POST请求中?为什么是隐藏表单?我需要将身份验证令牌传递到头中,为什么使用POST的表单和GET的ajax请求?此外,这并不是打开浏览器的新选项卡/窗口,它只是一个重定向,对于ajax请求上加载的身份验证和仅用于显示结果的隐藏表单是无用的。这不可能此功能创建新选项卡,可能是您的浏览器不标准或有pop阻止程序。为什么要使用隐藏表单?我需要将身份验证令牌传递到头中,为什么使用POST的表单和GET的ajax请求?此外,这并不是打开浏览器的新选项卡/窗口,它只是一个重定向,对于ajax请求上加载的身份验证和仅用于显示结果的隐藏表单来说是无用的。这不可能使用此功能创建新选项卡,可能是您的浏览器不标准或具有pop阻止程序。