jquery ajax表单提交问题-表单数据已提交,但返回错误“未成功”
更新 来自Fiddler 2: 我可以看到发送的数据。它们也显示在另一个站点的数据库中 来自其他域/服务器的响应似乎不正确:jquery ajax表单提交问题-表单数据已提交,但返回错误“未成功”,jquery,jquery-validate,Jquery,Jquery Validate,更新 来自Fiddler 2: 我可以看到发送的数据。它们也显示在另一个站点的数据库中 来自其他域/服务器的响应似乎不正确: Response sent 38 bytes of Cookie data: Set-Cookie: ARPT=YOLMQLS172.25.102.96CKMYK; path=/ This response did not contain a P3P Header. 即使报头响应不正确,继续执行此实现是否安全 我使用验证我的表单,然后使用jqueryajax将表单数据
Response sent 38 bytes of Cookie data:
Set-Cookie: ARPT=YOLMQLS172.25.102.96CKMYK; path=/
This response did not contain a P3P Header.
即使报头响应不正确,继续执行此实现是否安全
我使用验证我的表单,然后使用jqueryajax将表单数据发布到外部网站(潜在客户开发平台)
表单数据已成功提交到外部网站(Marketo)。我通过登录他们的网站验证了这一点,我可以看到我提交的测试表帖子以及所有的现场数据
但是,我从ajax调用中得到了一个错误而不是成功的响应
这是代码-有什么想法吗
$(feedbackForm).validate(
{
validClass: "success",
rules:
{
FirstName: { required: true },
LastName: { required: true },
Email:
{
required: true,
email: true
},
Question__c: { required: true }
},
messages:
{
FirstName: "Please enter your first name",
LastName: "Please enter your last name",
Email: "Please enter a valid email address",
Question__c: "Please enter your message"
},
submitHandler: function(form)
{
$.ajax(
{
type:"POST",
url: "http://app-k.marketo.com/index.php/leadCapture/save",
data: feedbackForm.serialize(),
success: function(response)
{
feedbackForm.find('.form_result').html(response.statusText);
alert('success');
},
error: function(response)
{
feedbackForm.find('.form_result').html(response.statusText);
alert("error");
}
});
return false;
}
您似乎正在向不在您自己域中的url发出ajax请求,该url通常由于跨域访问限制而受到限制 如果它实际上不在您的域中,您需要通过服务器端语言向该服务器发出请求。ajax调用将是对代码的调用,而代码又会进行另一个调用
然而,如果他们允许公众从外部域访问该URL,那么我所说的就无关紧要了。返回什么?如果您使用console.log(response),则在“error”函数中返回什么?如果要返回JSON数组,您可能只需要在AJAX函数中传递数据类型:“JSON”。Alert
$(“#easycopyFeedbackForm”)。serialize()
并查看控制台弹出的内容。log(response)返回一系列内容,如statusText=“error”。我不知道如何从对象判断它是否返回json,但我尝试了数据类型:“json”“还是一样。调试这类东西的一个好方法是在FireFox或Chrome中启动它,并分别使用FireBug网络面板或Chrome开发者工具网络选项卡。在这里,您将能够看到代码发送的数据以及服务器返回的确切响应。当然也有微软的Fiddler2,它做同样的事情,但没有与浏览器集成,所以没有那么光滑!我认为js看起来不错,除了跨域的问题——如果您可以控制服务器端组件,您可以使用jsonp来解决这个问题?如果失败了,请在本地应用程序中创建一个简单的web服务(或者在控制器上创建一个简单的操作,返回一个JsonResult),然后该服务(/或操作)从服务器端发布,并将响应转发回来-这是我经常使用的技术,我发现这比与jsonp callbacksKristian闲聊容易,url不在我的域中,是的,所以也许你在正确的区域。我使用的是.net应用程序,因此需要弄清楚如何在呼叫服务器端进行呼叫。但我也想知道,如果这是真的,为什么会将数据发布到外部站点?或者是由于跨域问题而没有返回的响应消息?很可能他们正在将该URL用于公共API,并且允许跨域请求访问该URL。这取决于他们