gpt4 book ai didi

javascript - 使用表单数据而不是带有 ajax 的查询字符串

转载 作者:行者123 更新时间:2023-11-30 15:47:17 25 4
gpt4 key购买 nike

我正在更新旧站点并遇到问题。我正在重写联系表单以使用 ajax 而不是普通的表单提交/谢谢页面。表单操作发送到第三方站点(我无权访问解析数据的 PHP)并且它适用于基本表单。当我使用 ajax 提交时,表单提交,没有抛出任何错误,但是第三方代码放入数据库的数据是空白的。相同的表单名称,相同的值。这是我的 js:

$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
// additional error messages or events
},
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var fname = $("#fname").val();
var lname = $("#lname").val();
var email = $("#email").val();
var cphone = $("#cphone").val();
var comments = $("#comments").val();
var address = $("#address").val();
var city = $("#city").val();
var zip = $("#zip").val();
$.ajax({
url: "https://my.serviceautopilot.com/AddEstimate.aspx?id=*************&wid=****************",
type: "POST",
dataType: 'jsonp',
processData: false,
data: {
fname: fname,
lname: lname,
cphone: cphone,
email: email,
comments: comments,
address: address,
city: city,
zip: zip
},
...

在原始提交中,数据如下所示: form data vs query string我相信这是因为数据作为原始表单数据传递,但在第二个示例中作为查询字符串的一部分传递。我的假设是否正确?代码是否存在其他问题?

我尝试使用无效的表单数据对象,它仍然出现在查询字符串中并且仍然是空白。我尝试调整数据类型、内容类型、processdata = false,但没有成功。过去,我可以访问服务器端代码,在调试和轻松修复此类问题时没有遇到问题,但此时我有点迷茫。谢谢大家。

最佳答案

dataType: 'jsonp',

JSONP 请求必须是 GET 请求(它们通过生成一个带有 <script> 属性的 src 元素来工作)。它们不能包含请求正文。

如果您想发出 POST 请求,请不要使用 JSONP。

(就此而言,无论如何不要使用 JSONP,绕过同源策略是一种肮脏的黑客行为,我们已经使用 CORS 多年了)。

关于javascript - 使用表单数据而不是带有 ajax 的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com