got solution,it was just invalid xml correct format goes like this
function activity_close() {
debugger;
var oppId = Xrm.Page.data.entity.getId().substring(1, 37);
var flag=0;
var activityFetchXML ="<fetch distinct='false' mapping='logical' output-format='xml-platform' version='1.0'>"+
"<entity name='activitypointer'>" +
"<attribute name = 'statecode'/>" +
"<attribute name = 'activityid'/>" +
"<filter type = 'and'>"+"<condition attribute = 'regardingobjectid' operator= 'eq' value = '" + oppId + "'/>"+
"</filter>"+
"</entity>"+
"</fetch>";
var encodedFetchXML = encodeURIComponent(activityFetchXML);
var data = {};
var serverURL = Xrm.Page.context.getClientUrl();
var req = new XMLHttpRequest();
req.open("GET", serverURL + "/api/data/v9.0/activitypointers?fetchXml=" + encodedFetchXML, true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=OData.Community.Display.V1.FormattedValue");
req.onreadystatechange = function () {
if (this.readyState == 4) {
req.onreadystatechange = null;
if (this.status == 200) {
data = JSON.parse(this.responseText);
var results = new Array();
results = data.value;
for (var i = 0; i <results.length; i++)
{
var statecode = results[i]["statecode"];
var primaryActivityId = results[i]["activityid"];
if (statecode != 1) {
alert("opportunity cannot be closed since activities are not completed or canceled");
flag=1;
break;
}
}
if(flag==0){
alert("HELLO SANDESH,opportunity can be closed since activities are canceled or completed");
}
} else {
var error = JSON.parse(this.responseText).error;
(error.message);
}
}
};
req.send();
}
just replace ' with " and vice versa