You need to sign in to do that
Don't have an account?
Ues jquery.ajax to invoke apex class
Hi,
I want to use jquery to invoke the Apex class. These jquery are written in a HTML page not visualforce page.
I have written some JavaScript codes to get the access_token base on OAuth2.0, so when user allow my application access their data, I want to invoke my Apex class in Force.com.
The following is my apex class which used the REST architecture.
@RestResource(urlMapping='/myservice/*') global with sharing class MyRestResource{ @HttpGet global static list<sObject> getRecord(RestRequest req, RestResponse res) { String objectType = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); String queryString = 'select name, id from ' + objectType; List<sObject> objects = Database.query(queryString); return objects; } }
It will listen the request url which contain /myservice/*
Then I use cUrl tools to test this class. By the following command the apex can intercept my request url and return the right result.
curl -X GET https: //ap1.salesforce.com/services/apexrest/myservice/Account/ -H "Authorization: OAuth access_token" -H "X-PrettyPrint:1"
So I think I can use this url (https://ap1.salesforce.com/services/apexrest) and packaged the other parts in a jquery.ajax url to achieve the same thing.
But when I did it in a jquery.ajax method I found the ajax can't sent the request by this url pattern.
Code section:
$.ajax({ type:"GET", url:"https://ap1.salesforce.com/services/apexrest/myservice/Account", error: function(){alert("error");}, success: function(){ alert("Hello"); }, beforeSend: function(jqXHR) { jqXHR.setRequestHeader("Authorization", "OAuth " + oauthResponse.access_token); } });
But this request can't sent successful by ajax method.
So I think the request url which sent by curl maybe analysis to another pattern in Force.com.
Does anyone have experiences in this field which use jquery invoke apex in a HTML page?
Thanks!
I found we can't invoke apex cross domain.
I have saw some information from this bolg, I think it will help others.
http://iwritecrappycode.wordpress.com/ by Kenji
Thanks.
All Answers
I found we can't invoke apex cross domain.
I have saw some information from this bolg, I think it will help others.
http://iwritecrappycode.wordpress.com/ by Kenji
Thanks.
Hi ,
can anyone provide an solution for the above problem.
I want to call an appex web service from jquery code using ajax with session id.
please reply soon.
thanks
Hi,
You can get some useful info from this blog http://iwritecrappycode.wordpress.com/