Intereting Posts
Список каталогов, содержащих символы Unicode в Windows Какой алгоритм хеширования используется для пароля PHP Отправка и получение SMS-сообщений из приложения PHP РЕШЕНИЕ НАЙДЕНО – одни и те же строки, но var_dump () говорит, что один из них длиннее на 5 символов PHP: В чем разница между классом SimpleXMLElement () и SimpleXML_load_string ()? PHP socket_write () отправляет только часть данных Должен ли я использовать статические классы и что является преимуществом (или недостатком)? Скорость доступа к файлам и скорость доступа к базе данных Multiupload с PHP / JavaScript Отображение страницы профиля пользователя PHP Обновите или создайте постоянный токен доступа к Facebook, чтобы опубликовать страницу приложения Получать сообщения с фильтром сообщений Ajax с флажками с несколькими выделениями Как издеваться над встроенными функциями php socket? Как создать произвольный запрос SOAP с использованием PHP? Замена для файла :: mime () в Laravel 4 (для получения типа mime из расширения файла)

Запрос на перекрестный запрос заблокирован: проблема при отправке заголовков в запрос Angular2 на laravel

Я использую angular2 + laravel, и я пытаюсь отправить запрос с заголовками, но он дает запрос на перекрестный запрос с блокировкой: ошибка. Если какой-либо орган знает, как его решить.

Я сделал некоторое возможное решение, например, включить Access-Control-Allow-Origin "*" в htaccess файле laravel и создал промежуточное ПО CORS, но эти решения не работают. Вот мой код углового.

import { Injectable } from '@angular/core'; import { Http, Headers, Response, RequestOptions } from '@angular/http'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/map' import configApp = require('../_configs/app.settings'); //import '../assets/frontend/custom/js/jquery.toaster.config.js'; declare function maketoast(status: string, message: string) : void; @Injectable() export class ForgotpasswordService { constructor(private http: Http) { } forgotPassword(email: string, token: string) { alert(token) var headers = new Headers(); // headers.append('Content-Type', 'application11/json'); let headers = new Headers(); headers.append("Authorization", "Bearer " + token; let options = new RequestOptions({ headers: headers }); // console.log(configApp.apiUrl+/test); return this.http.post(configApp.apiUrl+"/password/email", JSON.stringify({ email: email, apiRequest:1}), options } ) .map((response: Response) => { // login successful if there's a jwt token in the response let user = response.json(); console.log(user.status); if(user.status == false){ maketoast(user.toaster_status, user.message); event.stopImmediatePropagation; event.preventDefault(); event.stopPropagation(); } if (user.status == true) { maketoast(user.toaster_status, user.message); } }); } resetPassword(token: string, email: string, password: string, confirmPassword: string) { // console.log(configApp.apiUrl+/test); return this.http.post(configApp.apiUrl+"/password/reset", JSON.stringify({ token: token, email: email, password: confirmPassword, confirmPassword: password, apiRequest:1})) .map((response: Response) => { // login successful if there's a jwt token in the response let user = response.json(); console.log(user.status); if(user.status == false){ maketoast(user.toaster_status, user.message); event.stopImmediatePropagation; event.preventDefault(); event.stopPropagation(); } if (user.status == true) { maketoast(user.toaster_status, user.message); } }); } 

}

Это проблема на стороне сервера.

Создание промежуточного программного обеспечения:

 namespace App\Http\Middleware; use Closure; class Cors { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request) ->header('Access-Control-Allow-Origin', '*') ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); } } 

И добавьте на свой маршрут:

 Route::group(['middleware' => ['cors']], function () { 

// ВАШ код маршрута});

Я использую laravel и угловатый 2.

На Laravel я установил модуль barryvdh / laravel-cors, и когда я сделал POST-вызов, заголовки включают Access-Control-Allow-Origin «*».

Но angular2 делает предполетный вызов с помощью OPTIONS перед POST, и Laravel не отправлял Access-Control-Allow-Origin «*», когда действие было OPTION.

поэтому, я добавляю это в .htacess файл

 RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]] Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Credentials "true" Header always set Access-Control-Max-Age "1000" Header always set Access-Control-Allow-Headers "X-Requested-With, Content- Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding" Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"