未定义的结果在ajax jquery中

时间:2012-08-20 09:15:11

标签: jquery

我的代码是这样的东西,并且成功结果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 个答案:

答案 0 :(得分:1)

[WebMethod] 
public string HelloWorld() 
{ 
   xmlDoc.LoadXml("<root><item>Hello World</item></root>");
   return xmlDoc.OuterXML;
}

答案 1 :(得分: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);
    }
  });

希望这对你有用。

答案 2 :(得分:0)

您是否能够提醒msg或msg.success?

ajax页面的返回值是多少?

确保你的ajax页面有一个返回参数'd'。

答案 3 :(得分:0)

 //my return value from webservice is just "hello"

如果msg ==“你好”;那么msg.d应该是什么?如果你只是传递一个字符串,我看不到该字符串如何附加.d属性。