gpt4 book ai didi

javascript - jQuery.ajax 到 $http

转载 作者:行者123 更新时间:2023-11-30 17:18:51 26 4
gpt4 key购买 nike

我用过这个功能

    jQuery.ajax({
type: 'POST',
url: urlSubmit,
timeout: 5000,
dataType: 'text',
data: {
date : dataDate,
url : dataUrl,
domaine : dataDomaine,
email : dataEmail,
destinataire : dataDestinataire,
msg : dataMsg
},
"success": function (jqXHR, textStatus, errorThrown) {
console.log("AJAX success :) - statut " + textStatus);
$timeout(successMailZR_alerte, 3000);
},
"error": function (jqXHR, textStatus, errorThrown) {
console.log("AJAX fail :/ - statut " + textStatus);
$timeout(errorMailZR_alerte, 3000);
}

});

代码在做什么:代码 POST 到发送电子邮件的 php 脚本。

但是,因为我在一个完整的 angularjs 应用程序中重写了我的代码,所以我这样做了:

    $http({
method: 'POST',
url: urlSubmit,
timeout: 5000,
cache: false,
data: {
date : dataDate,
url : dataUrl,
domaine : dataDomaine,
email : dataEmail,
destinataire : dataDestinataire,
msg : dataMsg
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
responseType: 'text',
}).
success(function(data, status, headers, config) {
console.log("AJAX success :) - statut " + status);
$timeout(successMailZR_alerte, 3000);
}).
error(function(data, status, headers, config) {
console.log("AJAX fail :/ - statut " + status);
$timeout(errorMailZR_alerte, 3000);
});

问题是:使用 $http,我获得了成功 200,但没有发布任何内容,我的电子邮件也没有回复。有什么问题 ?

最佳答案

问题是 jQuery 的 POST 确实将您的数据作为表单数据(例如键值对)(https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Sending_and_retrieving_form_data)发送,而 AngularJS 在请求负载中发送您的数据。对于两者之间的区别,请参阅以下 SO 问题:What's the difference between "Request Payload" vs "Form Data" as seen in Chrome dev tools Network tab

为了使您的 Angular 脚本与您的服务器一起工作,您必须将您的数据转换为 URL 编码字符串,如下所述:How can I post data as form data instead of a request payload? .简单地设置 headers: {'Content-Type': 'application/x-www-form-urlencoded'} 是不够的。

另一种方法是调整应用程序的后端来解析消息有效负载而不是表单数据参数。

关于javascript - jQuery.ajax 到 $http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25563047/

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