Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $。未正确过帐_Php_Ajax_Post - Fatal编程技术网

Php $。未正确过帐

Php $。未正确过帐,php,ajax,post,Php,Ajax,Post,我有一个执行ajax POST的函数: function consultaruserID(){ if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.

我有一个执行ajax POST的函数:

function consultaruserID(){
    if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
        } else { // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

var userID = document.getElementById('userID').value;
var captcha = document.getElementById('captcha').value;
var token = encodeURIComponent(cToken);
    var params = "userID="+userID + "&captcha="+captcha + "&token="+token;


    xmlhttp.open('POST','/sys/getdata.php',false);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(params);


    alert (xmlhttp.responseText);

}
请注意,字符串标记的长度约为2000,并且包含一些特殊字符。因此我使用了encodeURIComponent(cToken)

php处理所有数据并返回字符串。工作100%

现在,使用下面的代码在发布后返回SUCCESS,但它不会给我带来getdata.php所期望的字符串

$.post("/sys/getdata.php",
    {userID: $('#userID').val(),
     captcha: $('#captcha').val(),
     token: encodeURIComponent(cToken)
    },
    function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
    }
);
在getdata.php上,我调试了来自这两种方法的ajax的$\u帖子。这两种方法似乎都是正确的。然而,处理标记的功能(不是我的)在某种程度上拒绝了ajax

我是不是遗漏了什么

cToken的样本:

var cToken='RadStyleSheetManager1_TSSM=&RadScriptManager1_TSM=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a33363de7-7c08-435e-ab35-682b2ed2c688%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%3aen-US%3a4701e229-f1c8-4ec4-9c40-b2d233d95d5d%3a16e4e7cd%3af7645509%3a22a6274a%3aed16cbdc%3a11e117d7&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKLTc1OTk5NDIwOA8WAh4IcHJldkdVSUQFJDlkYWRiODRjLWYyN2YtNDA2Yi04MjE4LWM3MGI4NzY4MmI1NxYCAgMPZBYCAgUPFCsAAw8WBh4FV2lkdGgbAAAAAADAckABAAAAHgZIZWlnaHQbAAAAAADAUkABAAAAHgRfIVNCAoADZBYCHgtDdXJyZW50R3VpZAUkOWRhZGI4NGMtZjI3Zi00MDZiLTgyMTgtYzcwYjg3NjgyYjU3FCsAA2RkFgIeCk1pblRpbWVvdXQCAxYCAgEPZBYIZg9kFgJmD2QWBmYPDxYKHwIbAAAAAAAASUABAAAAHwEbAAAAAACAZkABAAAAHghDc3NDbGFzc2UeCEltYWdlVXJsBVN%2BL1RlbGVyaWsuV2ViLlVJLldlYlJlc291cmNlLmF4ZD90eXBlPXJjYSZndWlkPTlkYWRiODRjLWYyN2YtNDA2Yi04MjE4LWM3MGI4NzY4MmI1Nx8DAoIDZGQCAQ8PFgIeBFRleHQFEUdlcmFyIG5vdmEgaW1hZ2VtZGQCAg8WBB4JaW5uZXJodG1sBQVPdXZpch4EaHJlZgVXfi9UZWxlcmlrLldlYi5VSS5XZWJSZXNvdXJjZS5heGQ%2FdHlwZT1jYWgmYW1wO2d1aWQ9OWRhZGI4NGMtZjI3Zi00MDZiLTgyMTgtYzcwYjg3NjgyYjU3ZAIBDw8WCh8CGwAAAAAAAElAAQAAAB8BGwAAAAAAgGZAAQAAAB8GZR8HBVN%2BL1RlbGVyaWsuV2ViLlVJLldlYlJlc291cmNlLmF4ZD90eXBlPXJjYSZndWlkPTlkYWRiODRjLWYyN2YtNDA2Yi04MjE4LWM3MGI4NzY4MmI1Nx8DAoIDZGQCAg8WBh8JBQVPdXZpch8KBVd%2BL1RlbGVyaWsuV2ViLlVJLldlYlJlc291cmNlLmF4ZD90eXBlPWNhaCZhbXA7Z3VpZD05ZGFkYjg0Yy1mMjdmLTQwNmItODIxOC1jNzBiODc2ODJiNTceB1Zpc2libGVnZAIDD2QWBGYPDxYIHwZlHglBY2Nlc3NLZXllHghUYWJJbmRleAEAAB8DAgJkZAIBDw8WBh8GZR8IBRxUeXBlIHRoZSBjb2RlIGZyb20gdGhlIGltYWdlHwMCAmRkGAIFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQtSYWRDYXB0Y2hhMQULUmFkQ2FwdGNoYTEPFCsAAgUkOWRhZGI4NGMtZjI3Zi00MDZiLTgyMTgtYzcwYjg3NjgyYjU3BgAAAAAAAAAAZC71hndqclnXtz26igXAh8hMTN8v1xbnYlEz5BpnTD2e&__EVENTVALIDATION=%2FwEWAgKQq574CQLYv5ykDAZWk768pXDUic2zwz0szJjtC6%2ByEIHnfkVFizDz0zTL&RadCaptcha1_ClientState=&RadCaptcha1%24CaptchaTextBox=';

您的令牌似乎包含未正确传递的额外参数,请尝试传递数据字符串:

var userID = document.getElementById('userID').value;
var captcha = document.getElementById('captcha').value;
var token = encodeURIComponent(cToken);
var params = "userID="+userID + "&captcha="+captcha + "&token="+token;

$.post("/sys/getdata.php",
    params,
    function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
    }
);

你不应该用URI编码
cToken
。当jQuery将您的对象文本转换为查询字符串时,它将自动应用URI编码。

Hi,@AZevedo…声明/填充“cToken”的位置以及它的值是什么?Hi!我把它贴在这个主题上。它在HTML头中声明。您不应该对URI编码
cToken
。当jQuery将对象文本转换为查询字符串时,它将自动应用URI编码。当您说“token以某种方式从ajax拒绝它”时,这是什么意思?你能胜任这个职位吗?您是否从服务器脚本中收到对帖子的非200响应?问题到底发生在哪里?@MikeBrant谢谢!你说对了!我从ajax中删除了URI编码,它成功了!“我想它是‘双重’编码的。”阿泽维多说得没错。我将添加作为答案。谢谢老兄!就这样!