Saturday 28 October 2017

ajax - Access-Control-Allow-Origin error sending a jQuery Post to Google API's

itemprop="text">


I read a lot for the
'Access-Control-Allow-Origin' error, but I don't understand what I have to fix
:(



I'm playing with Google Moderator API, but
when I try to href="http://code.google.com/apis/moderator/v1/using_rest.html#CreatingSeries"
rel="noreferrer">add new serie I
receive:



XMLHttpRequest cannot
load

https://www.googleapis.com/moderator/v1/series?key=[key]
&data%5Bdescription%5D=Share+and+rank+tips+for+eating+healthily+on+the+cheaps!
&data%5Bname%5D=Eating+Healthy+%26+Cheap
&data%5BvideoSubmissionAllowed%5D=false.

Origin [my_domain] is not allowed by
Access-Control-Allow-Origin.



I
tried with and without callback parameter, I tried to add 'Access-Control-Allow-Origin
*' to the header. And I don't know how to use $.getJSON here, if apply, because I have
to add the Authorization header and I don't know how to do it without beforeCall from
$.ajax :/



Any light for this darkness
u.u?



That's the
code:



            src="http://www.google.com/jsapi">


type="text/javascript">

var scope =
"https://www.googleapis.com/auth/moderator";
var token =
'';

function create(){
if (token == '')
token
= doCheck();

var myData = {

"data":
{
"description": "Share and rank tips for eating healthily on the cheaps!",

"name": "Eating Healthy & Cheap",
"videoSubmissionAllowed":
false
}
};

$.ajax({


url: 'https://www.googleapis.com/moderator/v1/series?key='+key,


type: 'POST',
callback: '?',
data: myData,
datatype:
'application/json',
success: function() { alert("Success"); },

error: function() { alert('Failed!'); },
beforeSend:
setHeader

});
}


function
setHeader(xhr) {

xhr.setRequestHeader('Authorization',
token);
}

function doLogin(){
if (token ==
''){
token = google.accounts.user.login(scope);

}else{

alert('already logged');

}
}


function doCheck(){
token =
google.accounts.user.checkLogin(scope);
return
token;
}


...
...
data-role="content">
onclick="doLogin();">
onclick="getModerator();">
onclick="create();">


class="post-text" itemprop="text">
class="normal">Answer



I solved
the Access-Control-Allow-Origin error modifying the dataType parameter to
dataType:'jsonp' and adding a
crossDomain:true




$.ajax({


url: 'https://www.googleapis.com/moderator/v1/series?key='+key,
data:
myData,
type: 'GET',
crossDomain: true,
dataType:
'jsonp',
success: function() { alert("Success"); },
error:
function() { alert('Failed!'); },

beforeSend:
setHeader
});


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...