Я выбрал путь разделения Api и Web Application. Однако проблема с межсайтовыми запросами остается. Вопрос под этим редактированием сейчас не имеет никакого значения, за исключением того факта, что проблема межсайтовых запросов остается. Я оставлю вопрос ниже для справки и, возможно, чтобы помочь другим решить, что делать в этой ситуации.
Недавно я начал работу над веб-приложением, и, намереваясь также разработать мобильные приложения, я решил создать публичный API. Вот некоторые из проблем, с которыми я столкнулся:
API на самом деле обслуживается с субдомена (api.example.com), что является проблемой, потому что я не могу делать межсайтовые запросы. Единственное решение, которое я придумал, это добавить маршруты для обоих api.example.com
и не-API-маршруты, чтобы я мог совершать звонки без межсайтовых запросов, что на самом деле привело бы к большому количеству избыточностей, и это не тот маршрут, который я хотел бы пройти (без каламбура).
Вот небольшой фрагмент, который устанавливает маршруты для API (я использую фреймворк Laravel):
Route::group(['domain' => Config::get('globals.API_URL_RAW'),
'namespace' => 'MySite\Api\v1',
'prefix' => 'v1'], function(){
Route::post('/register', 'RegistrationController@store');
}
Итак, как вы можете видеть, у меня есть маршруты, которые отвечают на запросы от api.example.com/v1/register
например. В веб-приложении я использую ajax для доступа к этому API, но доступ к API ограничен из-за межсайтовых запросов.
Вероятным решением будет полное разделение веб-приложения и API, но как мне тогда решить проблему межсайтовых запросов?
В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождениеhttp://example.comПоэтому не допускается доступ.
Кроме того, если бы я отделил API от веб-приложения, мне пришлось бы обрабатывать JSON в своем веб-приложении (API возвращает объекты JSON), тогда как теперь я могу просто работать с реальными объектами.
Я очень новичок в разработке веб-API, и я чувствую, что я не получаю что-то здесь, поэтому любая помощь будет принята с благодарностью.
На самом деле есть очень похожий вопрос, решающий ту же проблему, который можно найти здесь:
Однако я думаю, что проблема с межсайтовыми запросами не является проблемой для спрашивающего, потому что его API обслуживается из того же домена.
Задача ещё не решена.
Других решений пока нет …