web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Microsoft Dynamics CRM (Archive)

Dynamics crm 2015 - Call ASP.net web service from Ajax in crm form

(1) ShareShare
ReportReport
Posted on by Microsoft Employee

I need to call a Web Service from a Ajax in my entity form and i need to put the return data in some fields, but i got an error: "Error: Operation aborted\r\n"

I got the error at this line: 

error: function (jqXHR, textStatus, errorThrown) {
failureCallback(new Error(errorThrown));
},





The ALL code is:

/// <reference path="jquery-1.6.1.min.js" />

var AddressService = {


_bindings: {},
addressFieldNames: null,

setFieldNames: function (arg) {
var name = "name";
var line1 = "line1";
var line2 = "line2";
var line3 = "line3";
var postalCode = "postalcode";
var city = "city";
var state = "stateorprovince";
var country = "country";

var prefix;

if (typeof (arg) === "string") {
prefix = arg;
}
else {
var context = arg;
var sourceFieldName = context.getEventSource().getName();

var index = sourceFieldName.lastIndexOf("_");
if (index > -1) {
prefix = sourceFieldName.substring(0, index + 1);
}
else {
prefix = "";
}
}

AddressService.addressFieldNames = {
name: prefix + name,
line1: prefix + line1,
line2: prefix + line2,
line3: prefix + line3,
postalCode: prefix + postalCode,
city: prefix + city,
state: prefix + state,
country: prefix + country
};

if (!AddressService._bindings[prefix]) {
AddressService._bindings[prefix] = AddressService.addressFieldNames;
}
},

getAddressByPostalCode: function (postalCode, successCallback, failureCallback) {
try {
//localhost:51940/WebService.asmx/
var url = "myUrlHere" + postalCode;

var jqxhr = $.ajax({
url: url,
dataType: "jsonp",
data: null,
success: function (data, textStatus, jqXHR) {
var address;

if (data && data.GetCepResult) {
var result = data.GetCepResult;
address = {
line1: result.TipoLogradouro.Text != "Outros" ? result.TipoLogradouro.Text + " " + result.Logradouro : result.Logradouro,
line3: result.Bairro,
postalCode: result.CEP,
city: result.Cidade,
state: result.Estado,
country: "Brasil"
};
}
else {
address = null;
}

successCallback(address);
},
error: function (jqXHR, textStatus, errorThrown) {
failureCallback(new Error(errorThrown));
},
crossDomain: true
});

}
catch (error) {
failureCallback(error);
}
},

setAddressFields: function (address) {
if (!address) {
var clearAddressMessage = "Não foi encontrado nenhum endereço brasileiro com o CEP informado. Deseja limpar o formulário de endereço?\n\n";
clearAddressMessage += "Para manter o que foi digitado, clique em Cancelar.\n";
clearAddressMessage += "Para limpar o formulário de endereço, clique em OK.";

if (!confirm(clearAddressMessage)) {
return;
}
}

var line1 = address ? address.line1 : null;
//var line2 = address ? address.line2 : null;
var line3 = address ? address.line3 : null;
var city = address ? address.city : null;
var state = address ? address.state : null;
var country = address ? address.country : null;

var fields = AddressService.addressFieldNames;
Xrm.Page.data.entity.attributes.get(fields.line1).setValue(line1);
//Xrm.Page.data.entity.attributes.get(fields.line2).setValue(line2);
Xrm.Page.data.entity.attributes.get(fields.line3).setValue(line3);

if (address) {
Xrm.Page.data.entity.attributes.get(fields.postalCode).setValue(address.postalCode);
}

Xrm.Page.data.entity.attributes.get(fields.city).setValue(city);
Xrm.Page.data.entity.attributes.get(fields.state).setValue(state);
Xrm.Page.data.entity.attributes.get(fields.country).setValue(country);
},

postalCodeOnChange: function (context) {
AddressService.setFieldNames(context);

var fields = AddressService.addressFieldNames;
var postalCodeField = Xrm.Page.data.entity.attributes.get(fields.postalCode);
var postalCode = postalCodeField.getValue();

if (postalCode) {
AddressService.getAddressByPostalCode(
postalCode,
function (address) {
AddressService.setAddressFields(address);
},
function (error) {
alert("Ocorreu um erro ao pesquisar o endereço com CEP: " + postalCode + ".");

AddressService.setAddressFields(null);
}
);
}
else {
AddressService.setAddressFields(null);
}
},

formOnLoad: function (context) {
var prefixes = ["address1_", "address2_", "", "billto_", "shipto_", "gdb2_endereco_"];
for (var i = 0; i < prefixes.length; i++) {
var prefix = prefixes[i];

var testField = Xrm.Page.getAttribute(prefix + "line1");
if (testField) {
AddressService.setFieldNames(prefix);
}
}

},

formOnSave: function (context) {
for (var k in AddressService._bindings) {
var fields = AddressService._bindings[k];

var addressName;

var line1 = Xrm.Page.data.entity.attributes.get(fields.line1).getValue();
if (line1) {
addressName = line1;

var line2 = Xrm.Page.data.entity.attributes.get(fields.line2).getValue();
addressName += line2 ? ", " + line2 : "";

var line3 = Xrm.Page.data.entity.attributes.get(fields.line3).getValue();
addressName += line3 ? " - " + line3 : "";

var postalCode = Xrm.Page.data.entity.attributes.get(fields.postalCode).getValue();
addressName += postalCode ? " - " + postalCode : "";

var city = Xrm.Page.data.entity.attributes.get(fields.city).getValue();
addressName += city ? " - " + city : "";

var state = Xrm.Page.data.entity.attributes.get(fields.state).getValue();
addressName += state ? " - " + state : "";

var country = Xrm.Page.data.entity.attributes.get(fields.country).getValue();
addressName += country ? " - " + country : "";
}
else {
addressName = null;
}

var nameField = Xrm.Page.data.entity.attributes.get(fields.name);
nameField.setValue(addressName);
}
}

};




  • Community Member Profile Picture
    Microsoft Employee on at
    RE: Dynamics crm 2015 - Call ASP.net web service from Ajax in crm form

    But i got the error when i tried to call web service.

    when debugging, i got an error and go to this line: error: function (jqXHR, textStatus, errorThrown) {

    var jqxhr = $.ajax({

    url: url,

    dataType: "jsonp",

    data: null,

    success: function (data, textStatus, jqXHR) {

    var address;

    if (data && data.GetCepResult) {

    var result = data.GetCepResult;

    address = {

    line1: result.TipoLogradouro.Text != "Outros" ? result.TipoLogradouro.Text + " " + result.Logradouro : result.Logradouro,

    line3: result.Bairro,

    postalCode: result.CEP,

    city: result.Cidade,

    state: result.Estado,

    country: "Brasil"

    };

    }

    else {

    address = null;

    }

    successCallback(address);

    },

    error: function (jqXHR, textStatus, errorThrown) {

    failureCallback(new Error(errorThrown));

    },

    crossDomain: true

    });

  • razdynamics Profile Picture
    17,304 on at
    RE: Dynamics crm 2015 - Call ASP.net web service from Ajax in crm form

    Hi Henrique

    To Post Data into CRM from cross Domain try  using  XMLHttpRequest instead of the XRM.Page.data?

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Community Spotlight of the Month

Kudos to Mohamed Amine Mahmoudi!

Blog subscriptions now enabled!

Follow your favorite blogs

TechTalk: How Dataverse and Microsoft Fabric powers ...

Explore the latest advancements in data export and integration within ...

Leaderboard > 🔒Ι Microsoft Dynamics CRM (Archived)

Featured topics

Product updates

Dynamics 365 release plans