gpt4 book ai didi

javascript - 无法捕获通过 Jquery Ajax 发送的 $_POST/$_GET

转载 作者:行者123 更新时间:2023-12-03 08:01:28 25 4
gpt4 key购买 nike

请参阅@jpossi 答案。

我还没有接受答案,以便有人可以阐明可能存在的问题,尽管这有点牵强,因为原始的 POST 代码不存在。

好吧,这行得通,我只需注释掉processData: false。但由于实际函数使用 POST 方法,我尝试回到原始代码: var data = new FormData ( ); 保留 processData: false 并更改为 method : 'GET' 猜猜看,它起作用了...我简单地回到了原始的 POST 代码,取消注释几行并注释出几行。发生什么事了?

<小时/>

这是代码,它非常简单,但不知何故我无法捕获 Ajax 函数发送的 $_POST 数据。事实上,我无法发送正确的帖子数据。

这里我尝试使用 GET 选项,这是结果。

/**Javascript**/
var data = new FormData ( );
data.append ( 'unique_id', unique_id ); // This I checked, it is correct.
$.ajax ( {
method : 'GET', url : scriptUrl, data : data, cache : false, processData: false, contentType: false, dataType : 'json',
success : function ( data, textStatus, jqXHR )
{
if ( typeof data.error === 'undefined' ) { alert ( data ); }
else { alert ( 'cccsdsd' ); }
},
error : function ( jqXHR, textStatus, errorThrown )
{
alert ( textStatus );// This fires with Parseerror.
}
} );

/**PHP**/
if ( $this->input->get ( 'unique_id' ) ) // I am working with codeigniter.
{
$data ['message'] = 'My Message';
echo json_encode ( $data );
}
else
{
echo 'Something Else';
}

Ajax 永远不会成功,它总是抛出 parseerror

Firebug GET url 结果如下:http://localhost/mysite/Cart [object%20FormData]&_=1451738500443

服务器发送的响应是Something Else

我做错了什么?

最佳答案

jQuery.ajax() 预期为“数据”:PlainObject 或 String 或 Array

FormData 可用于 POST 请求。 (这是由浏览器处理的,而不是 jQuery)。 FormData 无法转换为 GET-String,因为它旨在处理文件上传等情况。

您应该将数据更改为:

var data = {'unique_id': unique_id};

或从 GET 更改为 POST

或者(截至评论)将 processData 更改为 true

关于javascript - 无法捕获通过 Jquery Ajax 发送的 $_POST/$_GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34566139/

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