Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 如何使用JS/AJAX/JQUERY为POST表单添加标题授权?_Javascript_Jquery_Ajax_Header_Authorization - Fatal编程技术网

Javascript 如何使用JS/AJAX/JQUERY为POST表单添加标题授权?

Javascript 如何使用JS/AJAX/JQUERY为POST表单添加标题授权?,javascript,jquery,ajax,header,authorization,Javascript,Jquery,Ajax,Header,Authorization,我想使用页面上的表单获取输入,并将这些值提交到另一个外部站点上托管的php。Request maker extension显示在外部站点上提交数据时传递的标题授权和其他输入 结果可能是一个xml文件(学生记录)。需要提取并显示它作为结果 尝试了大量使用$.Ajax和jquery,但都没有成功。请帮忙 [1] :。jpg [2]: . jpg 函数myFunction(){ var name=document.getElementById(“name”).value; //提交表单的AJAX代码

我想使用页面上的表单获取输入,并将这些值提交到另一个外部站点上托管的php。Request maker extension显示在外部站点上提交数据时传递的标题授权和其他输入

结果可能是一个xml文件(学生记录)。需要提取并显示它作为结果

尝试了大量使用$.Ajax和jquery,但都没有成功。请帮忙

[1] :。jpg [2]: . jpg

函数myFunction(){
var name=document.getElementById(“name”).value;
//提交表单的AJAX代码。
$.ajax({
类型:“POST”,
url:“http://externalsite.cpm/results.php.php",
数据:dataString,
发送前:函数(xhr){
xhr.setRequestHeader(“授权”、“基本XXXXXXXXXXXXXXXXXXXXXXXXXX”);或xhr.setRequestHeader(“授权”、“基本”+btoa(SERU用户+”:“+SERU通行证”);
},
cache:false,
成功:???
open(“POST”,“your_url.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xmlhttp.send(“name=“+name+”&email=“+email”);

输入您的姓名


虽然有点晚了,但仍在为可能面临同样问题的未来读者发布答案。 如果在ajax请求中明确提到表单提交url(操作)和方法类型(POST),请不要在html代码中提供表单提交url(操作)和方法类型(POST)。 请注意在给定的代码段中添加的相应更改

Html表单代码:

            <form><!---Removed form submit url-->
            <input type="text" id="keyName" value="testValue">
            <!---Id attribute added to input field to be submitted--->
            <input type="button" onclick="myFunction()" value="Submit">
            <!---Input type is button NOT submit--->
            </form>
更新:

PHP服务结果.PHP

<?php 
     print_r($_POST["keyName"]);
?>

我有一个类似的问题,需要在
HTTP
POST
请求头中添加身份验证头名称和身份验证令牌值。在构成HTML面板的JSP之一中添加了此javascript拦截器函数,该面板是web应用程序中每个页面的一部分

// this will add employee authentication headers to every ajax call
(function() {
    var site = window.XMLHttpRequest.prototype.send;
    window.XMLHttpRequest.prototype.send = function() {
        this.setRequestHeader("${employee.role.header}", "${employee.auth.secret}")
        return site.apply(this, [].slice.call(arguments));
    };
})();

谢谢你的回复。我试过了,但点击提交时什么也没发生。如果你能设置一个工作的JSFIDLE,我将非常感激。提前谢谢。更新了帖子。在这种情况下,你必须托管php服务。在你的网页上按F12键,然后打开控制台查看响应日志。就在那里。提交时,我得到了控制台XMLHttpRequest中的以下响应无法加载。对飞行前请求的响应未通过访问控制检查:“访问控制允许原点”标头的值“”不等于提供的原点。因此不允许原点“null”访问。但使用名为“访问控制允许原点”的chrome扩展(CORS)我能够成功提交并获得所需的结果。如何在不使用任何扩展的情况下成功提交?我对www.externalsite.com没有任何控制权。我只需要将我的页面中的值提交到他们的php并获得输出。P.S:我确实拥有www.externalsite.com的权限,但他们不会修改任何内容在他们的网站或php上。
// this will add employee authentication headers to every ajax call
(function() {
    var site = window.XMLHttpRequest.prototype.send;
    window.XMLHttpRequest.prototype.send = function() {
        this.setRequestHeader("${employee.role.header}", "${employee.auth.secret}")
        return site.apply(this, [].slice.call(arguments));
    };
})();