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