我已经设置了一个页面,该页面从表单中获取数据,序列化为JSON,然后使用AJAX调用PHP文件来处理表单数据并将其通过cURL发送到API。
如何获得API的响应以作为AJAX成功功能的一部分返回?
在我的项目开始时,我能够完成此操作,因为我使用的是php。但是不能使用该方法,因为该文件是通过AJAX调用而不是包含程序执行的。
我尝试按照本教程进行操作,但是一直发现错误。
我还搜索,查看和尝试了来自该网站上各种帖子的更多建议,甚至超出了我的估计。现在,我正在寻求帮助。
这是我的index.php文件上的相关ajax 。
$.ajax
({
type: "POST",
dataType : 'json',
async: false,
url: 'save_application.php',
data: { filename: fileName, applicationData: jsonFormString, job: adid },
success: function () { console.log("done");},
failure: function() {console.log('error');}
});
这是save_application.php文件的相关部分。
$curl = curl_init();
curl_setopt_array($curl, array(
//stuff here
));
$applicantresponse = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
最后,返回的$ applicantresponse格式如下:
{
"applicationId": 123456789,
"links": {
"link1": "https://thisisalinkforLINK1.html", //THIS IS THE VALUE I WANT
"link2": "https://thisisalink.html",
"link3": "https://thisisalink.html"
}
}
最终,我想将一个变量设置为links-> resume的值(例如,var resumeLink = (something goes here); \\returns https://thisisalinkforLINK1.html)
返回成功函数中的index.php,以便可以将该响应用于其他一些待办事项。
您需要$applicantresponse
从save_application.php
文件输出,以便将其返回到调用代码,并且需要更改success
ajax代码中的函数,然后使用该数据。它看起来像这样:
$applicantresponse = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
echo json_encode($applicantresponse);
接着...
$.ajax
({
...
success: function (data) {
console.log(data.links.link1);
// do something with the data that was returned
},
...
});
重要的一件事是您的php代码不会将任何其他文本输出到客户端。所有其他的echo
,print
在调试电话,所有的这些东西,已被删除,否则你不发回有效的JSON编码数据的jQuery知道如何解释。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句