gpt4 book ai didi

php - jQuery | Ajax,如何从外部 PHP 文件中接收的数据中操作数组键?

转载 作者:行者123 更新时间:2023-12-01 03:19:10 26 4
gpt4 key购买 nike

我有一个脚本,其中使用 ajax 将密码发送到 PHP 文件。 PHP 文件然后检查密码是否正确并发送回带有链接的数组数据成功代码。当接收到数据时,我可以清楚地看到键和值提醒它,但是如何操作键以从中获取值?

请参阅下面的示例,了解我如何使用 jQuery Ajax 与 PHP 进行通信:

jQuery Ajax:

$.ajax({
type: "POST",
url: "test.php",
data: { pass: $("#pass-field").val() }
}).done(function(data) {

if(data.link != ""){
alert("Link: " + data.link);
}
});
PHP:

    if(strtolower($retrieved_password) == $original_password){
echo json_encode(array("link" => "personal/cv.doc", "success" => "true"));
}else{
echo json_encode(array("link" => "", "success" => "false"));
}
?>

当我提醒 data.link 时,我会看到以下代码:

function link() {
[native code]
}

最佳答案

您的问题是响应中包含 text/html 类型。

done 回调中的 data 变量的类型为 String

您应该对其执行eval 以将其转换为对象。

类似这样的事情

$.ajax({
type: "POST",
url: "test.php",
}).done(function(data) {
var dataObj = {};
eval ("dataObj = " + data);
console.log([dataObj]);
});

最好的解决方案当然应该是返回 text/json 类型的响应。

这将创建object类型的数据对象。

无论如何 - 你应该让你的回调支持这两种类型

$.ajax({
type: "POST",
url: "test.php",
}).done(function(data) {
var dataObj = null;

switch ( typeof(data) ) {
case "object" : { dataObj = data; break; }
case "string" : { eval ("dataObj = " + data); break; }
default : { throw "unsupported type [" + typeof(data) + "]" }
}

//... more code here
});

关于php - jQuery | Ajax,如何从外部 PHP 文件中接收的数据中操作数组键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044089/

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