简体   繁体   English

如何使用Laravel发送跨域Ajax POST

[英]How to send Cross Domain Ajax POST with Laravel

I am trying to send a cross-domain post call using AJAX from one of my Laravel sites, to another. 我正在尝试使用AJAX从一个Laravel网站向另一个网站发送跨域发帖请求。

The other topic I saw addressed the first issue I was running into with Access Control headers: Jquery: Cross-domain ajax 'POST' with laravel 我看到的另一个主题解决了访问控制标头遇到的第一个问题: jQuery:使用laravel的跨域ajax'POST'

I am getting a 419 error, implying that I am not using a CSRF token, but with either token I use (local token or other domain token) it doesn't work. 我收到419错误,这表示我没有使用CSRF令牌,但是使用我使用的任何令牌(本地令牌或其他域令牌)都无法正常工作。

var CSRF_TOKEN = {{ csrf_token() }};
$.ajaxSetup( { headers : { 'X-CSRF-TOKEN' : CSRF_TOKEN } } );

var tracking_id = "{{ isset( $tracking_id ) ? $tracking_id : 'test-20' }}";
$.ajax({
    type: 'POST',
    url: 'https://example.com/beacon',
    crossDomain: true,
    data: { 'tracking_id': tracking_id },
    success: function(responseData, textStatus, jqXHR) {
        console.log( 'Click!' );
    },
    error: function (responseData, textStatus, errorThrown) {
        console.log( responseData );
    }
});

Excluding the route in VerifyCsrfToken.php would be your easiest bet. 最简单的选择是排除VerifyCsrfToken.php中的路由。 You can then make a middleware or some other means to restrict the request by ip, oauth, etc. 然后,您可以制作中间件或其他方式来通过ip,oauth等限制请求。

Docs: https://laravel.com/docs/5.7/csrf#csrf-excluding-uris 文件: https//laravel.com/docs/5.7/csrf#csrf-clusion-uris

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM