1

I have problem with cross domain request. I want to send get request via ajax from 'www.second-domain.com' to 'www.first-domain.com/path/to/plugin' and return html code (plugin view).
I install 'barryvdh/laravel-cors' from github in Laravel 4.2 on 'www.first-domain.com'.

plugin.blade.php

<div id="bookingPlugin"> <div class="container"> <div class="bookingPlugin"> <div class="bookingPluginHeader"> <div class="bookingPluginTxtCenter">REZERWACJA ON-LINE</div> </div> <div class="bookingPluginContent bookingPluginNoPadding"> @foreach ($categories as $category) <div class="bookingPluginButtonContainer"> <button id="{{{ $category->CategoryId }}}" class="bookingPluginTxtCenter">{{{ $category->CategoryName }}}</button> </div> @endforeach </div> </div> </div> </div> <div id="bookingWindow"></div> <script> $.getScript('http://plugins.first-domain.com/bookingWindow.js'); $.getScript('http://first-domain.com/packages/jquery-ui/jquery-ui.min.js'); $("head").append( "<link href=\"http://first-domain.com/packages/jquery-ui/jquery-ui.min.css\" rel=\"stylesheet\" media=\"all\" type=\"text/css\">" ); $("#bookingPlugin button").click(function(){ openBookingWindow("{{ $hotelId }}", this.id); }); </script> 

On 'www.second-domain.com' I added the following line to the code. If this line I added to 'www.first-domain.com' it is working.

<script type="text/javascript" src="http://plugins.first-domain.com/book.js"></script> 

book.js

$("head").append( "<style>"+ "#bookingPlugin{position:absolute;top:200px;width:100%;z-index:999;}"+ "#bookingPlugin button{font-size:100%;margin:0;vertical-align:baseline;line-height:normal;text-transform:uppercase;background:#2670b5;}"+ "#bookingPlugin button{width:100%;cursor:pointer;color:#fff;-webkit-appearance:button;border:1px solid #fff;outline:0;padding:5px;}"+ "#bookingPlugin button:hover{background:#275DA2}"+ ".bookingPlugin{width:250px;background-color:#fff;color:#444;border:1px solid #fff;padding:5px}"+ ".bookingPluginNoPadding{padding:0;}"+ ".bookingPluginHeader{width:100%;font-weight:bold;border-bottom:1px dotted #444;margin:0 0 5px 0;padding:5px;}"+ ".bookingPluginTxtCenter{text-align:center;}"+ ".bookingPluginContent{width:100%;}"+ ".bookingPluginButtonContainer{width:100%;}"+ "</style>" ); $.ajax({ //send get ajax request to laravel type:'get', //call to route url:'http://www.first-domain.com/path/to/plugin', //return data type as html dataType:'html' }).done(function(data){ //insert returned data into body element $("body").append(data); }).fail(function(jqXHR, ajaxOptions, thrownError){ alert(thrownError); }); 

barryvdh/laravel-cors/config.php

'defaults' => array( 'supportsCredentials' => false, 'allowedOrigins' => array(), 'allowedHeaders' => array(), 'allowedMethods' => array(), 'exposedHeaders' => array(), 'maxAge' => 0, 'hosts' => array(), ), 'paths' => array( '^/' => array( 'allowedOrigins' => array('*'), 'allowedHeaders' => array('Content-Type'), 'allowedMethods' => array('POST', 'PUT', 'GET', 'DELETE', 'OPTIONS'), 'maxAge' => 3600, ) ) 

EDIT: Request headers (www.second-domain.com -> www.first-domain.com)

Accept text/html, */*; q=0.01 Accept-Encoding gzip, deflate Accept-Language pl,en-US;q=0.7,en;q=0.3 DNT 1 Host first-domain.com Origin http://www.first-domain.com Referer http://www.first-domain.com/ User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 

Response headers (www.second-domain.com -> www.first-domain.com)

Cache-Control no-cache Connection keep-alive Content-Length 0 Content-Type text/html; charset=UTF-8 Date Mon, 27 Oct 2014 07:49:01 GMT Server nginx Set-Cookie laravel_session=eyJpdiI6Imtva3...; expires=Mon, 27-Oct-2014 09:49:01 GMT; Max-Age=7200; path=/; httponly Vary Origin X-Powered-By PHP/5.5.17 access-control-allow-origin http://www.first-domain.com 

Request headers (www.first-domain.com -> www.first-domain.com)

Accept text/html, */*; q=0.01 Accept-Encoding gzip, deflate Accept-Language pl,en-US;q=0.7,en;q=0.3 Cookie laravel_session=eyJpdiI6IjB1V...; _ga=GA1.2.1119242176.1414394349; _gat=1 DNT 1 Host first-domain.com Referer http://first-domain.com/ User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 X-Requested-With XMLHttpRequest 

Response headers (www.first-domain.com -> www.first-domain.com)

Cache-Control no-cache Connection keep-alive Content-Encoding gzip Content-Type text/html; charset=UTF-8 Date Mon, 27 Oct 2014 07:48:32 GMT Server nginx Set-Cookie laravel_session=eyJpdiI6ImVxd...; expires=Mon, 27-Oct-2014 09:48:32 GMT; Max-Age=7200; path=/; httponly Transfer-Encoding chunked Vary Accept-Encoding X-Powered-By PHP/5.5.17 
3
  • So what's the problem? What error messages are reported in the JavaScript console? What error messages are reported in the PHP log? Does the HTTP request look the way you expect in the Net tab of your browser's developer tools? What about the response? Does the response include the allow origin header? Commented Oct 26, 2014 at 12:52
  • Response headers: Cache-Control no-cache Connection keep-alive Content-Length 0 Content-Type text/html; charset=UTF-8 Date Mon, 27 Oct 2014 07:25:05 GMT Server nginx Set-Cookie laravel_session=eyJpdiI6IkdLVW14...; expires=Mon, 27-Oct-2014 09:25:05 GMT; Max-Age=7200; path=/; httponly Vary Origin X-Powered-By PHP/5.5.17 access-control-allow-origin http://www.first-domain.com Commented Oct 27, 2014 at 7:33
  • Request headers: Accept text/html, */*; q=0.01 Accept-Encoding gzip, deflate Accept-Language pl,en-US;q=0.7,en;q=0.3 DNT 1 Host first-domain.com Origin http://www.first-domain.com Referer http://www.first-domain.com/ User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 Commented Oct 27, 2014 at 7:36

1 Answer 1

1

I found the solution.
In www.first-domain.com -> www.first-domain.com request was include the header 'X-Requested-With: XMLHttpRequest', but on www.second-domain.com -> www.first-domain.com request wasn't this header.
The full answer I found on this topic Cross-Domain AJAX doesn't send X-Requested-With header

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.