0

//'Account'オブジェクトを準備し、create関数を呼び出します

function createAccount() {

var new_nit = new Object();

// Set text field

new_nit.Name = "Maddy";
createRecord(new_nit, "new_nitSet", createAccountCompleted, null);

}

//このコールバックメソッドは、アカウントの作成が成功すると実行されます

function createAccountCompleted(data, textStatus, XmlHttpRequest) {

var nit = data;

alert("Account created; Id: ");

}

//この関数は、OData呼び出しを行うことによってレコードを作成します

function createRecord(entityObject, odataSetName, successCallback, errorCallback) {

//Parse the entity object into JSON

var jsonEntity = window.JSON.stringify(entityObject);

// Get Server URL

var serverUrl = Xrm.Page.context.getServerUrl();

//The OData end-point

var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";

//Asynchronous AJAX function to Create a CRM record using OData

$.ajax({

type: "POST",

contentType: "application/json; charset=utf-8",

datatype: "json",

url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName,

data: jsonEntity,

beforeSend: function (XMLHttpRequest) {

//Specifying this header ensures that the results will be returned as JSON.

XMLHttpRequest.setRequestHeader("Accept", "application/json");

},

success: function (data, textStatus, XmlHttpRequest) {

if (successCallback) {

successCallback(data.d, textStatus, XmlHttpRequest);

}

},

error: function (XmlHttpRequest, textStatus, errorThrown) {

if (errorCallback)

errorCallback(XmlHttpRequest, textStatus, errorThrown);

else

alert("Error on the creation of record; Error – "+errorThrown);

}

});

}

上記のコードを使用して、というエンティティを作成していますnit。Webリソースにjson2ファイルとjQueryjsファイルがあります。ボタンクリックでこのコードを実行すると、エラーが発生しNo Transportます。検索したところ、このエラーはクロスサイトスクリプティングが原因であることがわかりました。クロスサイトスクリプティングを有効にする方法、またはこのエラーを取り除く方法。

4

1 に答える 1

0
  function createAccount() {
var gid = Xrm.Page.getAttribute("new_syllabus").getValue();
var stamail = new Object();
stamail.new_name = "Maddy";
stamail.new_gid = gid;
var myurl = "http://" + window.location.host + "/" + Xrm.Page.context.getOrgUniqueName();
//alert(gid);
// alert(Xrm.Page.data.entity.getId());

var jsoEntity = JSON.stringify(stamail);
var createRecordReq = new XMLHttpRequest();

var ODataPath = myurl + "/XRMServices/2011/OrganizationData.svc";

createRecordReq.open("POST", ODataPath + "/new_nitSet", false);
createRecordReq.setRequestHeader("Accept", "application/json");
createRecordReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");

// createRecordReq.onreadystatechange = function () { requestCallBack(this); };
createRecordReq.send(jsoEntity);

var newRecord = JSON.parse(createRecordReq.responseText).d;

}

ajaxを使用する代わりに、上記のコードを使用しました。その正常に動作します。

于 2012-10-08T09:54:53.660 に答える