Итак, я пытаюсь использовать каплю Digital Ocean в качестве API для приложения, размещенного на другом сервере.В настоящее время я только разрабатываю, так что этот сервер от моего localhost: 3000.
В моем коде на стороне клиента (JavaScript) у меня есть:
handleSendData = () => {
const request = new XMLHttpRequest()
request.open('POST', 'http://my-droplet-ip/api/create-image')
request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8')
request.setRequestHeader('Access-Control-Allow-Origin', 'http://my-droplet-ip')
request.send(JSON.stringify(data-object))
}
Наконец, в моем приложении Laravel (Laravel Framework 5.8.18) У меня есть маршрут под routes/api.php
:
Route::post('/create-image', 'CreateData');
И у меня есть контроллер CreateData.php
:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CreateImage extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request)
{
return response('Hello World', 200)
->header('Content-Type', 'application/json; charset=UTF-8')
->header('Access-Control-Allow-Origin', '*');
}
}
Проблема заключается в том, когда я пытаюсь запуститьВ этом запросе я получаю сообщение об ошибке CORS:
Запрос перекрестного источника заблокирован: та же политика происхождения запрещает чтение удаленного ресурса по адресу http://my -droplet-ip / api / create-image ,(Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»)
На вкладке «Сеть» я получаю 404, не найденный, и заголовок Access отсутствует в ответе.
Любойесть мысли по этому вопросу?