• ajax500错误


    昨天做一个需求,原先使用form提交的东西,领导说要改成使用ajax提交。嗯,听起来好像很简单很简单哦,可惜我已经很少敲代码了。擦,这工作让人槽点无数。果断写代码。

         
         var fm=document.getElementById('fm');
         var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){ console.log("ajax success"); formInner.pop(); } } xhr.onerror=function(){ console.log("ajax fail"); } xhr.open("POST","http://agent.pconline.com.cn:8040/adpubb/gen/task/urlsave.jsp"); fm.innerHTML += '<input type="hidden" name="area" value="1" />'; fm.innerHTML += '<input type="hidden" name="pt" value="'+success+'" />'; fm.innerHTML += '<input type="hidden" name="et" value="'+faild+'" />'; fm.innerHTML += '<input type="hidden" name="rt" value="urltest5.jsp?a=1" />'; var inputs=fm.getElementsByTagName("input"); var subResult=""; for(var i=0;i<inputs.length;i++){ var value=encodeURIComponent(inputs[i].value); value=value.replace(/~/g, '%7E').replace(/!/g, '%21').replace(/(/g, '%28').replace(/)/g, '%29').replace(/'/g, '%27').replace(/\%20/g,'+') subResult+=inputs[i].name+"="+value+"&"; } subResult=subResult.slice(0,-1); xhr.send(subResult);

      perfect,完美啊,好了,提交,呃,我再提交,呃,我再试试,呃。为毛老是500错误啊。

        

        我试试之前的form,没问题。难道是我form的data的格式不对???换成了formData。嗯,果不其然还是500错误。

      what the  fuck????????????????

        问度娘了,问啊问问啊问,写了代码代码5分钟,问度娘问了两个多小时。问了度娘好多次,度娘都说这是服务器故障跟你没关系!可是后端的小伙伴咬定这就是我的错,内牛满面啊。然后我一不小心就看到xmlHttpRequest的setRequestHeader这个东东。加上试试,死马当活马医。乱试试就对了。结果尼玛真的成功了。好了,还真是我的错。

        只要在xhr.open后添加这一句就可以了。擦

    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    

      吐槽下自己,写代码经常丢三拉丝。这工作简直吐不了槽了

  • 相关阅读:
    Linux管理用户和组
    const,static,volatile关键字的作用
    Linux 常用命令
    sizeof与strlen的区别
    不使用库函数的字符串处理
    Linux 编译命令参数
    Linux环境变量PATH
    c++ 使用Redis
    二分查找法
    php实现双色球算法
  • 原文地址:https://www.cnblogs.com/gg1234/p/6208223.html
Copyright © 2020-2023  润新知