2016-12-17 7 views
0

Изучив другие вопросы и ответы, я нахожу, что они действительно не покрывают желание, которое я хочу сделать, поэтому я задаю новый вопрос.Обращение с CORS для запросов на поддомен ajax в стойке

Итак, я построил субдомен, соответствующий промежуточному программному обеспечению для стойки с идеей, что я буду размещать свой api в собственном субдомене (api.localhost: 3000).

Это по большей части работает, однако, если я пытаюсь отправить запрос ajax, веб-браузер бросает шипение в CORS.

Так как я могу добавить в CORS для поддоменов для моего промежуточного промежуточного программного обеспечения поддомена, имея в виду, что я работаю в стойке для этого.

ответ

1

Если вы можете предотвратить использование CORS или jsonp, я предлагаю вам это сделать. Лучшим решением было бы определить подкаталог для обработки ваших запросов API/restful. У меня была подобная ситуация, и когда вы заставляете себя в CORS aka Header Always Set Access-Control-Allow-Origin *, то вы настраиваете себя на ограничения.

Избегайте этих ограничений, когда это возможно. Просто мой опыт. Удачи!

Я хотел бы сделать что-то вроде:

http://www.domain.com/rest/api/items/1

Где остальное, где ваши веб-службы обрабатываются. Отойдите от субдоменов, если они вам не нужны.

Если вы абсолютно должны использовать CORS, и вы знаете, что запросы обрабатываются вами, и только вы, то можете уйти с помощью jsonp.

JSONP

JSONP по существу окружит запрос в JavaScript Object, используя функцию обратного вызова. Существуют ограничения на объем данных, которые вы можете обрабатывать с помощью этого подхода, но это быстрый способ заставить свои запросы на междоменные запросы работать без настройки CORS.

Вот пример запроса JSONP:

$.ajax({ 
      type: "GET", 
      url: "http://www.domain.com/rest/WEB055S?callback=?", 
      data: args, 
      contentType: "application/json; charset=utf-8", 
      dataType: "jsonp"}). 
      done(function(data){ 
       alert(data.ERROR); 
      })... 
+0

Интересно, это способ сделать это без JQuery? – Thermatix

+0

Есть некоторые API-интерфейсы, доступные для PHP для кросс-домена, которые я знаю, но CORS все равно придется настраивать. Jsonp - единственный доступ к клиентской стороне, о котором я знаю, но если вам нужны только возможности междоменного доступа на стороне сервера, браузер не должен знать, что это кросс-домен, поэтому жизнь становится намного проще. Вы должны иметь возможность установить '.htaccess' или' http.conf' с помощью разрешить все директивы cross-origin и быть хорошими. – yardpenalty

+0

Мне просто не хотелось бы видеть, что вы ограничены программным обеспечением на стороне сервера. – yardpenalty