jQuery ajax没有发送任何东西

时间:2014-07-18 12:56:44

标签: jquery ajax cakephp cakephp-2.3

我有一个使用CakePHP构建的网站。我想发送一个带有jquery ajax的HTTP帖子(我知道cakePHP有一个帮助,但是我想用jQuery做它因为它更灵活)。

我的jquery功能:

function warrantyqueryPost(ServiceorderSerial, ServiceorderUserId){

    var data = { 'data[Warrantyqueries][serial]' : 123, 'data[Warrantyqueries][user_id]' : 4  }

    var url = '/warrantyqueries/add';

    alert(url);
    $.ajax({
        type: 'post',
        url: url,
        data: data,
        success: function (){
            alert('hat geklappt');
        },
        error: function(){
            alert('nein');
        }
    });

    alert('test');
}

出于测试目的,键值对是硬编码的(以避免任何错误)。调用该函数但不执行ajax调用。没有任何事情发生。

post方法的绝对url是

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add

我甚至尝试过,但没有成功。

出于测试原因,我尝试了一个非常简单的ajax get:

function warrantyquery(ServiceorderSerial, ServiceorderUserId){
    alert('test');
    var url = '/serviceordersystem/index.php';

    var jqxhr = $.get(url, function() {
        alert( "success" );
    })
        .done(function() {
            alert( "second success" );
        })
        .fail(function() {
            alert( "error" );
        })
        .always(function() {
            alert( "finished" );
        });
}

什么都没发生。如果我用浏览器调用该地址,我会返回正确的字符串。

更新 对我来说,真的看起来像jquery不工作!待命,我会检查......

3 个答案:

答案 0 :(得分:0)

这个'index.php'的网址是否正确?

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add

不应该是:

http://localhost:8080/serviceordersystem/warrantyqueries/add 

相反?

您可以使用Chrome开发者工具调试申请,并查看回复代码。如果网址有误,则应返回404.如果Chrome DT或Firebug中未显示任何内容,则表示您的Ajax请求未被触发且不是网址问题。

答案 1 :(得分:0)

您的网址很可能是错误的。你说绝对路径是

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add

但是使用/warrantyqueries/add您的网址将导致

http://localhost:8080/warrantyqueries/add

您必须使用绝对路径才能使其正常工作。

P.S:根据经验,我遇到了$.ajax()http://localhost的问题。如果仍然失败,您可能需要考虑使用IP。


为了将来的调试,您可以考虑打开浏览器控制台并查看错误和网络请求。另外,请考虑扩展您的错误方法。

例如

error: function(jqXHR, textStatus, errorThrown) {
  console.log(textStatus, errorThrown);
}

取自http://api.jquery.com/jquery.ajax/

  

错误类型:函数(jqXHR jqXHR,String textStatus,String   errorThrown)

答案 2 :(得分:0)

我发现链接的jquery库已损坏。再次下载了库,现在它正在工作。