CrossDomain POST met jQuery & Laravel 4.2
Ik wil een post maken van 1 website naar een andere. Ik krijg de error:
XMLHttpRequest cannot load http://development.dev/test_post. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers.
Ik heb voor jQuery de volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script>
$(document).ready(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
$form = $(this).closest('form');
var data = $form.serialize();
$.ajax({
type: 'POST',
url: 'http://development.dev/test_post',
crossDomain: true,
data: '{"some":"json"}',
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
});
});
</script>
$(document).ready(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
$form = $(this).closest('form');
var data = $form.serialize();
$.ajax({
type: 'POST',
url: 'http://development.dev/test_post',
crossDomain: true,
data: '{"some":"json"}',
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
});
});
</script>
Voor mn .htaccess wil ik alles toestaan om zeker ervan te zijn dat er iets aan data binnen komt. Mijn htaccess:
Code (php)
1
2
3
4
5
2
3
4
5
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, PUT, POST, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Content-Range, Content-Disposition, Content-Description"
</IfModule>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, PUT, POST, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Content-Range, Content-Disposition, Content-Description"
</IfModule>
Als laatste mn PHP afhandling:
Voor degene die onbekend zijn met laravel: dit is hetzelfde als dat je een post doet naar www.domein.nl/upload.php en bij symfony in de YAML file (als het goed is) zet.
Gewijzigd op 08/10/2015 23:18:12 door Donny Wie weet
X-Requested-With staat niet in je Access-Control-Allow-Headers.
Heeft iemand een idee waaraan dat kan liggen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<script>
$(document).ready(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
$form = $(this).closest('form');
$data = $form.serialize();
$.ajax({
type: 'POST',
url: 'http://mm.dev/test_post',
crossDomain: true,
data: "{}",
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
console.log('Gelukt!')
},
error: function (responseData, textStatus, errorThrown) {
console.log('Fail');
console.log(responseData)
console.log(textStatus)
console.log(errorThrown)
}
});
});
});
</script>
$(document).ready(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
$form = $(this).closest('form');
$data = $form.serialize();
$.ajax({
type: 'POST',
url: 'http://mm.dev/test_post',
crossDomain: true,
data: "{}",
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
console.log('Gelukt!')
},
error: function (responseData, textStatus, errorThrown) {
console.log('Fail');
console.log(responseData)
console.log(textStatus)
console.log(errorThrown)
}
});
});
});
</script>