0

我的代码是这样的,成功的结果 msg.d 是未定义的。我认为它与 formdata 作为传递给 jquery ajax 的值有关。但我不知道我能解决它。那有什么问题?!

  var files = event.originalEvent.dataTransfer.files;   // i get it in drop event 
  var data = new FormData();

  jQuery.each(files, function (i, file) {
    data.append('file-' + i, file);
  });

  $.ajax({
    type: "POST",
    url: parameters.Url,
    contentType: false,
    processData: false,
    data: data,
    success: function (msg) {        //my return value from webservice is just "hello"
      alert(msg.d);
    }
  });
 }
4

4 回答 4

1
[WebMethod] 
public string HelloWorld() 
{ 
   xmlDoc.LoadXml("<root><item>Hello World</item></root>");
   return xmlDoc.OuterXML;
}
于 2012-08-20T09:43:31.090 回答
1

从您上面的评论可以理解,您实际上只是从服务器端返回一个字符串。在您的客户端,您正试图从 ajax 返回中提醒参数“d”。这个 d 根本不存在。

当您发出警报消息时,您会收到消息 [object XMLDocument]。如果您在 ajax 调用中指定 'dataType: "text",',此 XML 元素可以更改为字符串。

所以请尝试这样。

  $.ajax({
    type: "POST",
    url: parameters.Url,
    data: data,
    dataType: "text",
    success: function (msg) {       
      alert(msg);
    }
  });

希望这对你有用。

于 2012-08-20T09:43:38.180 回答
0
 //my return value from webservice is just "hello"

如果msg== "你好"; 那么应该msg.d是什么?如果您只是传递一个字符串作为结果,我看不出该字符串如何.d附加一个属性。

于 2012-08-20T09:40:50.913 回答
0

你能提醒 msg 或 msg.success 吗?

您从 ajax 页面返回的值是多少?

确保您的 ajax 页面有一个返回参数“d”。

于 2012-08-20T09:24:37.127 回答