我正在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>
错误500与您的JavaScript无关。正如您所看到的,这是服务器错误。尝试检查方法UpdateRates。问题可能出现在任何地方-坏参数等
在这里你可以找到更多信息。
(编辑:JQuery Ajax Post导致500内部服务器错误可能解决了同样的问题。)
您可能应该使用json或Jsonp数据类型,并确保您的php脚本具有标头('content-type:application/json;charset=utf-8')。
查看此链接如何使用PHP 进行ajax请求
http://www.geekality.net/2010/06/27/php-how-to-easily-provide-json-and-jsonp/