错误:jQuery ...未被调用 - Ajax从Node.js跨域服务器请求geoJSON

时间:2017-01-24 04:38:01

标签: jquery json ajax node.js

我试图通过在一台服务器上运行的Node.js应用程序将geoJSON数据传递给在另一台服务器上运行的Web应用程序。我发现了很多其他问题,但是我从他们那里尝试过的任何问题似乎都解决了我的问题。

在Chrome上使用RestEasy扩展程序我能够毫无问题地使用我的所有RESTapi调用。 GET,PUT,DELETE和POST。将网址粘贴到浏览器中还会返回Chrome控制台报告中的geoJSON数据页面:

Resource interpreted as Document but transferred with MIME type application/json:

这是我第一次写这样的内容,我希望将这些数据提取到客户端webapp以将geoJSON数据呈现给地图。

首先我明白跨域设置要求我使用JSONP,而我不熟悉我认为第一步是接收它,然后重新加工到geojson以便地图理解。 我在我的Node.js应用程序中安装了CORS,它似乎解决了我的跨域问题,但现在我收到了这个jQuery错误。

这是我的客户端ajax功能:

    $(document).ready(function ()
    {
        console.log("Running AJAX");
        $.ajax(
        {
            type: "GET",
            contentType: "application/jsonp; charset=utf-8",
            url: myUrl,
            cache: false,
            timeout: 5000,
            dataType: "jsonp",
            crossDomain: true,
            data: "{}",
            success: function (data)
            {
                // do my stuff
                console.log("Reading Data");
                console.log(data);
            },
            error: function (xhr, ajaxOptions, thrownError)
            {
                console.log("http Status Response: " + xhr.status);
                console.log(thrownError);
            }
        });
    });

这是我在服务器上的Node.js应用程序:

app.get('/api/objects', function(req, res)
{
    Object.getObjects(function(err, objects)
    {
        if (err)
        { 
            res.json(err);
        } 

        res.jsonp(objects); 
    });
});

以下是Chrome控制台的错误:

http Status Response: 200
Error: jQuery31108564601072970404_1485231436558 was not called
at Function.error (jquery.min.js:2)
at b.converters.script json (jquery.min.js:4)
at Nb (jquery.min.js:4)
at A (jquery.min.js:4)
at HTMLScriptElement.c (jquery.min.js:4)
at HTMLScriptElement.dispatch (jquery.min.js:3)
at HTMLScriptElement.q.handle (jquery.min.js:3)

1 个答案:

答案 0 :(得分:0)

发现了这个问题。 事实证明重新启动apache(运行node.js应用程序的服务器)不会重新启动node.js应用程序。 所以我在服务器上的更改从未被应用过。

以下是重启node.js应用后控制台现在读取的内容。经验教训。

Reading Data
Array[16]
0: Object__v: 0_id: "58815cd0110dcc3b1e51d411"geometry: Objectproperties: Objecttype: "Feature"__proto__: 
Object1: 
Object2: 
Object3: 
Object4: 
Object5: 
Object6:
Object7: 
Object8: 
Object9: 
Object10: 
Object11: 
Object12: 
Object13: 
Object14: 
Object15: 
Object
length: 16
__proto__: Array[0]