Вопрос по javascript, ajax, xss – Что такое JSONP?

2

ли совершать AJAX-вызовы (например, используя jQuery.ajax ()) из локального файла html / js (например, file: //home/a.html) на удаленный сервер (например,HTTP: // домен: 8080 / апи)? Если да, как включить такой XSS (например, в FF3)?

Я предполагаю, что это некоторые настройки безопасности браузера, но не могу найти какие.

И предположим, что есть ответ без каких-либо изменений на стороне сервера (таких как JSONP).

Благодарю.

Фрагмент кода:

function foo(){
       $.ajax({
           type: "POST",
           url: "http://localhost:8080/api",
           data: "Hello world",
           success: function (data, textStatus, XMLHttpRequest) {
               alert(data);
               alert("success!");
           },
           error: function(XMLHttpRequest, textStatus, errorThrown) {
               alert("fail");
           }
       });
   }

...
...

<button onclick="foo()">click me</button>

Я получаю "успех", но пустые данные.

Никаких настроек не требуется .. пожалуйста, опубликуйте свой код, чтобы мы могли помочь вам ... Kishan Gajjar
Кишан, я добавил фрагмент кода к посту. Nikolay Vyahhi
пожалуйста, подробно, если домен: 8080 является вашим сервером? то есть тот, который вы можете настроить zindel
да, но я предполагаю, что есть ответ без каких-либо изменений на стороне сервера (таких как JSONP). Nikolay Vyahhi

Ваш Ответ

3   ответа
3

нет других способов, кроме как использовать один из 2 методов: либо JSONP, как указано в предыдущих ответах, либоCORS, Оба требуют серверных изменений. JSONP лучше, если вам нужна поддержка старых браузеров, но CORS, очевидно, чище и, скорее всего, не требует изменений серверных сценариев, изменения конфигурации сервера должно быть достаточно.

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

Привет, Зиндель, не могли бы вы указать, как именно нужно настроить Apache, чтобы он мог получать контент, обслуживаемый им, из локального файла, используя AJAX? YakovL
0

callback=? в конце вашего URL, который вы передаете в ajax

Я полагаю, что есть ответ без каких-либо изменений на стороне сервера (таких как JSONP). Nikolay Vyahhi
0

надеюсь, он уже будет поддерживать его. Если это ваш собственный API, вам, возможно, придется добавить поддержку для него самостоятельно. Вы можете найти, что этот связанный вопрос поможет вам получить некоторую справку:Что такое JSONP?

Похожие вопросы