Ajax-запрос успешно завершен, но выдает ошибку - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в mongodb, я использую Express , Body-Parser и Mongoose , и у меня есть база данных mongodb (она онлайн, ее называют mlab) откуда я беру данные.Все работает нормально, я использовал почтальон, чтобы получить, отправить и удалить.Я пытаюсь получить данные в JavaScript, чтобы я мог отобразить в HTML.Я использую Ajax, он работает и возвращает успех, но запускает функцию сбоя Ajax.

Контроллер mongdb

exports.photoalbum_all = function (req, res, next) {
PhotoAlbum.find(({}), function (err, photoalbum) {
    if (err) return next(err);
    res.send("../Views/images", {photo: photoalbum});
});};

Вызов AjaxЯ делаю

                    function getPhoto() {
                        var photoAdd = 'http://localhost:1234/photoalbums/find'; 
                        $.ajax({
                            header: 'Access-Control-Allow-Origin: *',
                            dataType: "jsonp",
                            url: photoAdd,
                            contentType: 'application/json; charset=utf-8',
                            async: false,
                            crossDomain: true,
                            success: AjaxSucceeded,//callback,
                            error: AjaxFailed
                        });
                    }
                    function AjaxSucceeded(result) {
                        alert("hello");
                        alert(result);
                    }
                    function AjaxFailed(result) {
                        debugger;
                        alert("hello1");
                        alert(result.statusText);
                    }
                    getPhoto();

Сначала я получил ошибки о ajax перекрестном запросе блокировки, заблокированном , поэтому мне пришлось использовать тип данных: 'jsonp'.Как я уже сказал, когда я проверяю в сети консоль браузера Chrome, я получаю успех и этот адрес:

http://localhost:1234/photoalbums/find?callback=jQuery111202567313069615542_1545928466705&_=1545928466706

, который возвращает значения Json

[{"_id":"5c22a5ffcb29611f905f756b","title":"prayer","albums":[{"_id":"5c22a5ffcb29611f905f756c","u_name":"family01","u_title":"family_man"}],"createdAt":"2018-12-25T21:49:51.091Z","updatedAt":"2018-12-25T21:49:51.091Z","__v":0},{"_id":"5c22a66bd3527c39342fafe7","title":"prayer","albums":[{"_id":"5c22a66bd3527c39342fafe8","u_name":"family01","u_title":"family_man"}],"createdAt":"2018-12-25T21:51:39.274Z","updatedAt":"2018-12-25T21:51:39.274Z","__v":0}]

я исчерпалЯ исследую, но безрезультатно, хотя я и подозреваю, может ли проблема с ответом Json, которую я получаю от mlab, иметь в виду форматирование.Я открыт для любых идей.Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 27 декабря 2018

На стороне клиента больше ничего не нужно делать, кроме JSONP.Вам нужно включить CORS на вашем локальном хосте, если вы хотите использовать правильный AJAX-вызов сервера JSON.

Вот несколько уроков о том, как это сделать Смертельный CORS, когда http://localhost является источником

Вы также можете Google: Включить CORS на localhost

Надеюсь, это поможет

...