【发布时间】:2018-06-10 07:47:01
【问题描述】:
我必须创建一个 JSON 对象,它等效于使用此 Ajax 代码 sn-p 创建的 JSON 对象:
$.ajax({
type : "POST",
url : "?",
dataType: "json",
data : "username=" + encodeURIComponent($('input[name="username"]').val()) + "&password=" + encodeURIComponent($('input[name="password"]').val()) + "&antiForgeryToken=d98188e0f56bafa75180591e38d189ee",
success : function(json) {
if(json.status == 'success') {
window.parent.location.href = json.returnUrl;
window.parent.$.fancybox.close();
} else {
$('#slfErrorAlert').show();
$('.spispinner').hide();
$maindiv.removeAttr("disabled");
$maindiv.removeClass("instaclass31");
}
}
});
});
我只能使用 PHP,这是我目前使用来自 SimpleTest 的 SimpleBrowser 库生成的:
$browser = new SimpleBrowser();
$str = '?username=aaa&password=bbb&antiForgeryToken=d98188e0f56bafa75180591e38d189ee';
$json = json_encode($str);
$browser->post($httpsPage, $json);
我指定我不必使用这个库及其方法,但例如我知道这也可以使用cURL 来完成,虽然我不知道如何。
当我启动脚本时,我会从我认为的 POST 服务器中得到一个通用的 {"status":"error"} 作为输出。
我错过了什么?
根据@Andy 使用json_encode 的正确语法:(仍然是相同的错误消息):
$data = array('username' => 'aaa', 'password' => 'bbb');
$json = json_encode($data);
【问题讨论】:
-
接收脚本期望什么?
$_POST中的值是php://input中的值? -
@Andy 我没写,但我认为它接收所有类型的请求,因为在 html 源代码中按钮不是 type="submit"