【问题标题】:jQuery Ajax error not able to get response even if the php script is running fine即使 php 脚本运行良好,jQuery Ajax 错误也无法获得响应
【发布时间】:2016-01-30 13:01:47
【问题描述】:

我正在 yii 中创建一个 Web 应用程序,我在其中发送 ajax 请求以更新数据库。

该应用程序第一次运行,然后它抛出了以下错误。

这里的数据正在数据库中更新,但我没有收到回复。

POST http://localhost:8080/simplerAP/index.php?r=site/UpdateRates 500 (Internal Server Error)
k.cors.a.crossDomain.send   @   jQuery-2.1.4.min.js:4
n.extend.ajax   @   jQuery-2.1.4.min.js:4
saveRates   @   index.php?r=site/tariffcard:528
btn.onclick @   index.php?r=site/tariffcard:499

我的JS代码如下

<script type="text/javascript">

  function enableTextBox(regularId, urgentId, btnId) 
  {
    //alert(regularId + " " + urgentId + " " + btnId);
    document.getElementById(regularId).removeAttribute("disabled");
    document.getElementById(urgentId).removeAttribute("disabled");
    //document.getElementById(regularId).className = "form-control";
    //document.getElementById(urgentId).className = "form-control";
    var btnSpan = document.getElementById(btnId);
    while(btnSpan.firstChild)
    {
      btnSpan.removeChild(btnSpan.firstChild);
    }
    var btn = document.createElement("INPUT");
    btn.type = "button";
    btn.value = "Save";
    btn.className = "btn btn-primary";
    btn.id = btnId;
    btn.onclick = function(){ saveRates(this.id, document.getElementById(regularId).value, document.getElementById(urgentId).value)};
    btnSpan.appendChild(btn);
  }

  function saveRates(btnId, regularValue, urgentValue)
  {
    //alert(btnId + " " + regularValue + " " + urgentValue);
    var clothType = btnId.substring(0, btnId.indexOf("-"));
    //alert(clothType);
    var tariffCardType = btnId.substring(btnId.indexOf("-")+1, btnId.indexOf("-", btnId.indexOf("-")+1));
    //alert(tariffCardType);
    var jobTypeCode = btnId.substring(btnId.indexOf("-", btnId.indexOf("-")+1)+1, btnId.length);
    if(jobTypeCode == "I")
    {
      jobType = "iron";
    }
    if(jobTypeCode == "WI")
    {
      jobType = "washiron";
    }
    if(jobTypeCode == "D")
    {
      jobType = "drycleaning";
    }
    //alert(jobType);

    var newRegularRate = regularValue;
    var newUrgentRate = urgentValue;

    $.ajax
    (
      {
        url:'/simplerAP/index.php?r=site/UpdateRates',
        type:'post',
        data:{tarifftardtype:tariffCardType, jobtype:jobType, clothtype:clothType, newregularrate:newRegularRate, newurgentrate:newUrgentRate},
        success:function(data)
                {
                  document.getElementById('demo').innerHTML = data;
                },
        cache:false}
    );
  }


  </script>

【问题讨论】:

标签: jquery ajax post yii cross-domain


【解决方案1】:

您可能应该使用 json 或 Jsonp 数据类型,并确保您的 php 脚本具有 header('content-type: application/json; charset=utf-8') 。

查看此链接如何使用 PHP 发出 ajax 请求

http://www.geekality.net/2010/06/27/php-how-to-easily-provide-json-and-jsonp/

【讨论】:

    【解决方案2】:

    错误 500 与您的 JavaScript 无关。如您所见,这是服务器错误。尝试检查方法 UpdateRates。问题可能出在任何地方 - 参数错误等。

    Here你可以找到更多信息。

    (编辑:JQuery Ajax Post results in 500 Internal Server Error 可能正在解决同样的问题。)

    【讨论】:

      猜你喜欢
      • 2022-08-11
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      相关资源
      最近更新 更多