Hi Eric,

This same XmlHttpRequest works correctly when I code with regular 
JavaScript. Here is the code that works :

var xmlhttp = new XMLHttpRequest(true, true);
xmlhttp.open("POST", "*************************", true);
var sr ='<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:sch="*****************">'+
   '<soapenv:Header>'+
  '<sch:SmartNoteAuthentication>'+
'<sch:User>************</sch:User>'+
'<sch:Password>***********</sch:Password>'+
  '</sch:SmartNoteAuthentication>'+
   '</soapenv:Header>'+
   '<soapenv:Body>'+
  '<sch:SmartNoteRequest>'+
'<sch:PatientNote>Note</sch:PatientNote>';
sr+=this.xmlPatientDemographicInfo(requestData);
sr+='<sch:ProcessType>NLP_And_DiffDiag</sch:ProcessType>'+
  '</sch:SmartNoteRequest>'+
   '</soapenv:Body>'+
'</soapenv:Envelope>';
xmlhttp.setRequestHeader('Content-Type', "text/xml");
xmlhttp.onreadystatechange = function(e){
try{
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
self.logTime("received full API response");
}else{

}
}
}catch(e){

}
};
xmlhttp.send(sr);

It does not work when I make the same request in AngularJS using the code 
mentioned below. Am I missing some header content because of which the 
server is not allowing access?


 

>
> On Wed, Aug 20, 2014 at 12:48 PM, Anubha Garg <[email protected] 
> <javascript:>> wrote:
>
>> Hi,
>>
>> I am working on an application which needs to send a 'post' request to a 
>> server residing on a separate domain. The request and response data are of 
>> type XML. I tried using $http and $http.post methods, but it did not work. 
>> I get the following error message:
>>
>> "XMLHttpRequest cannot load "myUrl". No 'Access-Control-Allow-Origin' 
>> header is present on the requested resource. Origin '
>> http://localhost:1337' is therefore not allowed access. "
>>
>> After searching online and asking on the chatroom I came to know that 
>> these methods can only be used for JSON data.
>>
>> My Code currently looks like this :
>>
>> App.js:
>> -------------
>>
>> angular.module('SmartZone', SmartZone.ModuleRegistry).
>> config(function ($provide, $stateProvider, $urlRouterProvider, 
>> $httpProvider) {
>>  /*------------------Other Code 
>> ----------------------------------------*/
>>         //Allow http requests outside the domain
>>         $httpProvider.defaults.useXDomain = true;
>>         delete $httpProvider.defaults.headers.common['X-Requested-With'];
>> })
>>
>>
>> Widget Controller:
>> ----------------------------
>>
>> controller('Controller', ['$scope', 'dataManager', '$http', 
>> function($scope, dataManager, $http){
>> /*------------------------------- Other Code 
>> -------------------------------------*/
>>         $scope.url = "myUrl";
>>         $scope.data = '<soapenv:Envelope xmlns:soapenv="
>> http://schemas.xmlsoap.org/soap/envelope/"; 
>> xmlns:sch="********************************************">'+
>>             '<soapenv:Header>'+
>>             '<sch:SmartNoteAuthentication>'+
>>             '<sch:User>***********</sch:User>'+
>>             '<sch:Password>*********</sch:Password>'+
>>             '</sch:SmartNoteAuthentication>'+
>>             '</soapenv:Header>'+
>>             '<soapenv:Body>'+
>>             '<sch:SmartNoteRequest>'+
>>             '<sch:PatientNote>Headache & neck pain</sch:PatientNote>'+
>>             '<sch:PatientDemographicInfo>'+
>>             
>> '<sch:AgeRange><sch:Code>8</sch:Code><sch:Name>Adult</sch:Name></sch:AgeRange>'+
>>             
>> '<sch:Gender><sch:Code>m</sch:Code><sch:Name>Male</sch:Name></sch:Gender>'+
>>             '</sch:PatientDemographicInfo>'+
>>             '<sch:ProcessType>NLP_And_DiffDiag</sch:ProcessType>'+
>>             '</sch:SmartNoteRequest>'+
>>             '</soapenv:Body>'+
>>             '</soapenv:Envelope>';
>>         alert($scope.url);
>>         alert($scope.data);
>>         $scope.config = "{ 'Content-Type': 'text/xml', 
>> 'Access-Control-Allow-Origin' : '*', 'Access-Control-Allow-Methods' : 
>> 'GET,POST', 'Access-Control-Allow-Headers' : 'Content-Type' }";
>>         alert($scope.config);
>>         $http({
>>             method: 'POST',
>>             url: $scope.url,
>>             data: $scope.data,
>>             headers: $scope.config
>>         })
>>             .success(function(data) {
>>                 alert("http request was successful");
>>                 alert("data is : "+data);
>>                 alert("status is : "+status);
>>             })
>>             .error(function(data, status) {
>>                 alert("http request failed");
>>                 alert("data is : "+data);
>>                 alert("status is : "+status);
>>             });
>>     }])
>>
>>
>>  Can you tell me how I can achieve the above task? Kindly let me know if 
>> I need to provide any further information to help resolve this.
>>
>> Thanks,
>> Anubha Garg
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "AngularJS" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/angular.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to