1

我正在发出这样的 AJAX 请求:

$("#botao_pesquisar_material").click(function(){
    $(this).attr("disabled", "disabled");
    $("#material").addClass('loading');
    $.ajax({
        url: '{{ URL::base() }}/material/lista_ajax/',
        dataType: 'json',
        cache: false,
        error: function(data)
        {
            console.log(data);
        },
        success: function(data) {
            for(x in data)
            {
                console.log(data[x]);
            }
        }
    });

我的 PHP 方法没问题,因为当我通过 URL 访问它时,它返回给我预期的 JSON,当我在 localhost 上调用它时,它工作得很好,所以它与特殊字符或其他数据无关。

当我在我的服务器上运行它时,我有这个:

GET http://dc.portaldeideias.com.br:8080/sergios/public/material/lista_ajax/?callback=jQuery172007718208665028214_1342725644520&_=1342725649090 500 (Internal Server Error) jquery.js:4
f.support.ajax.f.ajaxTransport.send jquery.js:4
f.extend.ajax jquery.js:4
$.click.$.ajax.url
f.event.dispatch jquery.js:3
f.event.add.h.handle.i

使用console.log(data)我有整个 JSON 响应,但这里真的很奇怪:

readyState是_4

responseText是_[{"attributes":{"pk_a030_id":78,"a030_descricao":"Camur\u00e7a"},"original":{"pk_a030_id":78,"a030_descricao":"Camur\u00e7a"},"relationships":[],"exists":true,"includes":[]}]

statusText是_Internal Server Error

因此,创建了请求的值,但我收到了一个Internal Server Error

4

1 回答 1

0

很抱歉将其发布为答案,但我没有必要的权限将其添加为您的问题的评论。

您是否注意到 javascript 日志中的 URL 与http://localhost:8080/sergios/public/material/lista_ajax/屏幕截图中提供的 URL 不同http://dc.p[...]s.com.br:8080/sergios/public/material/lista_ajax

是否有两种不同版本的lista_ajaxPHP 方法托管在两台不同的服务器上(可能是一台远程服务器,另一台是本地服务器),这就是为什么它在从浏览器中查看时完美无缺,并且在使用 ajax 测试时出现错误的原因?

同样重要的是要注意,如果您正在浏览托管在远程服务器上的网站,并且 ajax 配置为一个localhost地址,它将对您自己的机器发出请求,而不是远程服务器(javascript 在浏览器中运行,所以localhost翻译到它自己的客户地址)。

也许情况并非如此,但值得评论。

于 2012-07-18T04:09:56.817 回答