私は.net開発者です。私はサンプルを使ってNode.jsを学ぶことにしました。 Mongo dbデータベースからデータを収集するnode.jsサービスを作成しました。そして、私はHTMLのウェブページを持っています。私は単純なjqueryコードを使ってこのnode.js Webサービスを取得しました。しかし、私はこのエラーを熱くしました:要求されたJSON解析が失敗しました。jqueryスクリプトの中でNode.jsサービスを呼び出す方法は?
マイDbは:
{ "_id":のObjectId( "58568264477db6913051a0cf")、 "名前": "ユスフ" }
{ "_id":のObjectId( "58568381477db6913051a0d0") 、 "名前": "レイラ" }
マイServerのコード:(Node.jsの)
'use strict';
var express = require("express");
var app = express();
var MongoClient = require('mongodb').MongoClient;
var router = express.Router();
app.get('/Notifies', function (req, res) {
MongoClient.connect('mongodb://127.0.0.1:27017/Test', function (err, db) {
if (err) throw err;
var coll = db.collection('Notifies');
coll.find({}).toArray(function (err, result) {
if (err) {
res.send(err);
} else {
res.send(result);
}
})
})
});
var port = Number(process.env.PORT || 5000);
app.listen(port, function() {
console.log("Listening on " + port);
})
のjQuery:
var GetAllNotifyTypesFunc = function() {
console.log("notify");
$.ajax({
url: 'http://127.0.0.1:5000/Notifies',
type: 'GET',
dataType: 'jsonp',
async: false,
contentType: 'application/json; charset=utf-8',
success: function (data) {
var str = '';
console.log(data);
$.each(data, function (idx, elem) {
console.log(elem.Name);
str += "\"" + elem.Name + "\"" + " : " + "{ \"!type\": \"bool\" }" + ",";
});
str = str.substring(0, str.length - 1);;
str = "{" + str + "}";
localStorage.removeItem("alarms");
localStorage.setItem('alarms', str);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
console.log(msg);
}
私にはこの上記のコードリターンこのエラー:要求されたJSONの解析に失敗しました。
1. Acceptヘッダーとして 'jsonp'を使う理由は何ですか? "OK"と答えると 'application/jsonp'となるでしょう** **レスポンスをデコードするためにコールバックを提供する必要があります** .json!= jsonpを覚えておいてください2.あなたのサービスが別のドメインにある場合は、 JSONPレスポンスのコールバックを指定していないため、 'Request JSON parse failed 'が発生します。 –