Я немного смущен тем, что здесь происходит. Я провел все свои исследования CORS и заставил их работать с моими запросами POST и GET, все в порядке и блестяще. Но теперь мне понадобился запрос PUT (потому что put означает обновление). И мой запрос OPTIONS в порядке, но он не выполняет настоящий вызов. Если я изменю методы на POST, в laravel и Axios (в VueJs), это сработает. Кто-нибудь знает, вот мой ответ с сервера:
Версии:
Если потребуется дополнительная информация, дайте мне знать, и я сделаю все возможное, чтобы ее предоставить.
ОБНОВЛЕНИЕ: извините, я допустил опечатку в своем последнем предложении: «Если я изменю методы на PUT, в laravel и Axios (в VueJs) это сработает»
Методы должны быть POST, а не PUT, вот так: «Если я изменю методы на POST, в laravel и Axios (в VueJs) это сработает»
@ Core972 разве не достаточно, чтобы знать? а если это не разрешено, должен ли код состояния быть не 200, а 400?
Это ответ на вызов OPTIONS, который сообщает клиенту, что разрешено в запросе CORS. Он не отправит ошибку 400, потому что еще не знает, какой запрос вы собираетесь выполнить. Браузер просто не сделает запрос, если это не запрос PUT. Все проверки безопасности CORS выполняются на стороне клиента.
Вы создали маршруты как для опций, так и для запроса на размещение? У меня была аналогичная проблема не так давно
Параметры @ mur762 не должны быть методом маршрута. Это просто корс. Я знаю, что можно создать маршрут параметров в laravel, но я еще не изучал его. Но теперь это работает, см. Мой собственный ответ






Хорошо, поэтому мне пришлось поместить заголовок для разрешения метода PUT:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE"); <----
Сначала у меня не было этого заголовка, но мои GET и POST работали нормально, поэтому, возможно, заголовок по умолчанию установлен только для GET / POST? Теперь я сам определил все методы и теперь он работает. Я знаю, что это может быть лучше сделано в Laravel с пакетом cors или с помощью промежуточного программного обеспечения, но я сделаю это в будущем. Пока это работает.
Для этого маршрута в laravel разрешен метод
PUT. Если вы используете Laravel-cors, проверьте, разрешен ли этот метод.