Php 表单帖子和jquery帖子之间的区别
我需要知道以下两者之间的确切区别:Php 表单帖子和jquery帖子之间的区别,php,jquery,html,post,Php,Jquery,Html,Post,我需要知道以下两者之间的确切区别: <form method="POST" action="https://mywebsite/signon.php"> <input name="harv_acc" value="940322903" type="hidden" /> <input name="harv_eml" value="a@b.com" type="hidden" /> <input type="submit" value="SignOn" /&
<form method="POST" action="https://mywebsite/signon.php">
<input name="harv_acc" value="940322903" type="hidden" />
<input name="harv_eml" value="a@b.com" type="hidden" />
<input type="submit" value="SignOn" />
及
var url=”https://mywebsite/signon.php";
$.ajax({
url:url,
键入:“POST”,
//数据类型:“html”-这是我后来尝试过的
//数据:“harv_acc=“+accountnumber+”&harv_eml=“+email,这也是我上一次尝试的内容,但下面是我第一次尝试的内容
数据:{harv_acc:account,harv_eml:email},
成功:功能(数据){
关闭弹出窗口(“div_plesewait”);
警报(数据);
//window.location=encodeURI('?DocumentID='+DocumentID+'&DownloadType='+DownloadType+'&DownloadPath='+data);
}
});
当我发布后者时,我得到了200分,但没有回应。如果我提交第一个,我会得到正确的响应。在使用POST方法时,您应该将数据作为JSON发布
var url = "https://mywebsite/signon.php";
$.ajax({
url: url,
type: 'POST',
dataType: 'html',
data: {
harv_acc : accountnumber,
harv_eml : email
},
success: function (data) {
closePopup("div_PleaseWait");
alert(data);
//window.location = encodeURI('<%= Url.Action("DownloadDocument", "Documents") %>?DocumentID=' + documentID + '&DownloadType=' + downloadType + '&DownloadPath=' + data);
}
});
var url=”https://mywebsite/signon.php";
$.ajax({
url:url,
键入:“POST”,
数据类型:“html”,
数据:{
harv_acc:账号,
harv_eml:电子邮件
},
成功:功能(数据){
关闭弹出窗口(“div_plesewait”);
警报(数据);
//window.location=encodeURI('?DocumentID='+DocumentID+'&DownloadType='+DownloadType+'&DownloadPath='+data);
}
});
注意:我使用了dataType:JSON尝试将数据作为key:value对象发送。这是jQuery文档中的一个示例
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
更新:正如用户Matchu指出的,这不是问题所在,因为数据将被转换为查询字符串,正如jQuery文档中所述:
数据选项可以包含形式为key1=value1&key2=value2的查询字符串,也可以包含形式为{key1:'value1',key2:'value2'}的映射。如果使用后一种形式,则在发送数据之前,使用jQuery.param()将数据转换为查询字符串
是的,我的回答有些鲁莽。至少我学到了一些东西!;) 从评论中:
我正在发布到另一个站点
啊哈!这是你的问题。出于安全原因,浏览器会阻止AJAX访问外部网站。很抱歉,您不会通过XHR请求发出该请求
如果其他网站希望您与他们交流,他们可以通过JSON-p公开网站的这一部分,其工作原理如下:
添加到源代码中(是的,使用GET进行此操作很麻烦,但是JSON-P无法以任何其他方式工作),并创建一个名为myCallback
的函数来处理响应数据myCallback的内容({success:false,errorMessage:“密码不正确,请重试!”})
myCallback
,一切都很顺利数据类型:“jsonp”
,它就可以为您处理整个回调过程
但是如果你与这个网站没有密切的联系,那就不太可能发生,你可能不得不放弃这种跨网站的互动。抱歉,这种跨域策略对联机安全至关重要。(我不希望其他网站代表我kthx向bankofamerica.com发出请求。)传递给
complete
函数的第一个参数将是jqXHR
对象,它是浏览器XMLHttpRequest
对象的包装器。处理响应更方便的方法是使用done
方法:
var url = "https://mywebsite/signon.php";
$.ajax({
url: url,
type: 'POST',
dataType: 'html',
data: "harv_acc=" + accountnumber + "&harv_eml=" + email
}).done(function(data) {
closePopup("div_PleaseWait");
alert(data);
});
浏览器不支持跨域ajax请求。但还有另一种方法可以解决这个问题 您可以用于跨域请求。它易于使用,允许您从任何支持回调的服务器/脚本请求任何内容(只要是JSON格式)。JSONP的优点是它也适用于较旧的浏览器 唯一严重的限制似乎是它总是使用HTTPGET方法
请您也检查一下。您如何从文件返回数据。您需要在php文件中回显输出,才能在ajax中获得响应。它们看起来与我非常相似。什么是正确的回答?@Cptcecil你能发布你的php代码吗?我没有访问php代码的权限,我正在发布到另一个网站。不过我想我可以向他们要。这将非常有帮助。@Cptcecil安全性防止跨域ajax请求。这就是为什么您没有得到与另一个答案类似的响应:
dataType
不是指数据的类型,而是指我们在响应中期望的数据类型。虽然jQuery团队可能会做出愚蠢的命名决定。另外,data
实际上可以是一个查询字符串,如果我们以对象形式给它数据,jQuery将把它转换成相应的查询字符串。尽管如此,问题中的原始版本不是正确的encodeURIComponent
'd,因此这实际上可以解决一些问题。我说的是“你应该”而不是“你必须”!!如果没有跨域问题,这就是问题所在!
var url = "https://mywebsite/signon.php";
$.ajax({
url: url,
type: 'POST',
dataType: 'html',
data: "harv_acc=" + accountnumber + "&harv_eml=" + email
}).done(function(data) {
closePopup("div_PleaseWait");
alert(data);
});