How can i make a cross domain POST call for a rails 3 rest service.
I have read a lot about jsonp but its only for GET method. Are there any other way to do it on rails 3. Can anybody provide me with the exact steps to make a cross domain json POST call to rails rest service.
I want to make a POST call through ajax jquery to rails server side rest service.
I tried using JSONP but it didn't work for me
Include POST as the type.
$.ajax({
type: "POST",
url: 'ruby/file/name',
data: {'foo': 'bar'},
success: function(s) {
console.log('success' + s);
},
error: function(e) {
console.log('error' + e);
}
});
Related
i am trying to call php rest webservice from MVC ajax but after calling it it is not going to call success i dont what i am missing here.
webservice required 2 paramaters my code
$.ajax({
type: "POST",
url: "https://test.com/custom/",
dataType: "json",
contentType: "application/json",
data: { "ReleaseVersion": "XXX", "ReleaseType":"XXX" },
success: function (data) {
alert("webservice called successfully");
}
})
it tried using json.stringfy while passing parameters but it wont work.
is anyone how to solve this.
Environment: Visual Studio 2013 and MVC 4.0.
set datatype in ajax call that is jsonp for calling cross domain webservice.
In php webservice code you have to add header before passing json.
as header content type=application/json, then and then only you will get json from php webservice in your ajax call.
I am using the below code to let a user Follow another Instagram user. However, even though the result returns a positive success (meta.code==200), the API is still not allowing a follow.
I now understand that this is because JSONP is using script tags and GET. Is the solution to set up a proxy server? If so, can you demonstrate the code on how to do this?
Many thanks!
$.ajax({
type: "POST",
"method": "POST",
url: 'https://api.instagram.com/v1/users/' + followID + '/relationship?access_token=' + accessToken + '&callback=callbackFunction',
data: {action: 'follow'},/*need this to access the relationship*/
dataType: "jsonp",
success: function(result){
if (result.meta.code == 200) {
document.getElementById(followID).innerHTML = "Requested";
document.getElementById(followID).style.display = "none";
document.getElementById("reqID" + followID).style.display = "block";
alert(result.data.outgoing_status;);
}
}
});
There are the security risks in exposing user access token in javascript
What are the security risks in exposing facebook user access token in javascript?
The access token is a sensible data that must be always invisible.
You should do that through server side (Like PHP, ASP, JSP......)
This is a PHP wrapper for the Instagram API, it may help you
https://github.com/cosenary/Instagram-PHP-API
I've got everything working up until Step 2 of the OAuth process where you request the actual token. I'm using a very simple jQuery Post request and constantly getting Access Control Origin errors. I've tried contentType: 'application/json' and everything else I know to try.
It's just not working and I'm not sure the problem. I've confirmed all the variables are set properly before the request. Simple post request...
var url = 'https://[STORENAMEVARIABLE].myshopify.com/admin/oauth/access_token';
var data = JSON.stringify({ client_id: apiKey, client_secret: secret, code: code });
$.ajax({
type: 'POST',
url: url,
data: data,
success: function(data) {
debugger;
},
error: function(data) {
debugger;
}
});
Any ideas what I'm doing wrong?
You need to make your OAuth requests from a server. This is the Javascript cross-domain security kicking in.
If you are using Rails you can use omniAuth and it'll take care of the whole OAuth dance for you. Otherwise you'll have to search around but most popular language have an OAuth library that you can just plug in.
Is it possible to add custom headers to asp.net MVC 4 Web API?
I assume you are talking about HTTP headers. And I am not sure if you want to customize the response or the request. You can do both. Here is a blog post that shows how to add a custom header in the response using and ActionFilterAttribute. If you are using JQuery ajax to send a request to the Web API you can use the beforeSend event to add a custom header. Here is an example of using it for basic authentication.
$.ajax({
url: _url,
data: _data,
type: _type,
beforeSend: function (xhr) {
var up = username + ":" + password;
xhr.setRequestHeader("Authorization", "Basic " + up);
},
success: _successFunc,
error: _errorFunc
});
I am calling a rest service in ajax.
If I add the svc file in the same project and call I am able to call the url
The below is the URL working
http://localhost:1947/GreenViewService.svc/?callback
If I add the svc in separate project layer and call in ajax I am unable to call it says 403 forbidden error and sometimes 405 error.
If I call the below url from different layer not working is it because port no. varies. should I give any access rights.
function GetDataPoints() {
alert('S');
var action = 'http://localhost:1984/GreenViewService.svc/?callback=';
alert(action);
$.ajax({
"type": "GET",
"url": action,
"cache": false,
"contentType": "application/json; charset=utf-8",
dataType: "text",
"success": function(result) {
alert(eval(result));
var json = eval(result);
//fillDropDown(json, prefix + 'DataPoint', 'NodeLabel', 'ID');
}
});
}
As you say it works when in the same project but not in a different project.
The difference is that when it is in a different project it is a cross site call.
To do a cross site call you need to use JSONP