Ajax函数给出错误"命中错误fn! [对象]"从调用Web服务时的以下函数

时间:2014-03-14 16:12:50

标签: javascript ajax json web-services sendmail

我是网络服务的新手,并尝试从html页面调用web服务,这给我发出以下错误“命中错误fn![object Object]”并且无法将邮件发送到所需的电子邮件地址。请告诉我,这是错误的吗?

function test() {

    var firstname=$('#txtName').val();
    var lastname =$('#txtMessage').val();
    var Email=$('#txtEmail').val();

    $.ajax({ url: "http://localhost/ZeroDebt/WsZeroDebtApp.asmx/SendEmailToClient",    
    data: { _fromAddress: JSON.stringify(Email),_Subject:JSON.stringify("Zero Debt App Invitation Request"),_body:JSON.stringify(firstname +' '+lastname), clientName: JSON.stringify('Dr. Hanoi'), clientEmail: JSON.stringify('abc@xyz.net') },
        dataType: "jsonp",
        success: function(data) {
            alert(data);
        },
        error: function(error) {
            alert("Hit error fn!" + error);
        }
    });
}

2 个答案:

答案 0 :(得分:0)

我可以建议改写吗? (请自己测试)

var SENDMAIL_URL = "http://localhost/ZeroDebt/WsZeroDebtApp.asmx/SendEmailToClient"

function test() {

  var firstname = $('#txtName').val(),
      lastname = $('#txtMessage').val(),
      email = $('#txtEmail').val();

  var data = JSON.stringify({
    _fromAddress: email,
    _Subject: "Zero Debt App Invitation Request",
    _body: firstname + ' ' + lastname,
    _clientName: 'Dr. Hanoi',
    clientEmail: 'abc@xyz.net'
  });

  function notify( args ) {
    console.log( args );
  }

  function onSuccess( data ) {
    notify( data );
  }
  function onError( error ) {
    notify( "Hit error fn!" ); // Important to seperate string from Object
    notify( error );
  }

  $.ajax({
    url: SENDMAIL_URL,    
    data: data,
    dataType: "jsonp",
    success: onSuccess,
    error: onError
  });
}

此外,将URL设为常量字符串并将URL保持在一起(比滚动代码更容易配置)是可维护的。

答案 1 :(得分:0)

最后,我找到了解决方案。我唯一需要做的就是给客户端电子邮件参数发送电子邮件,该参数不是字符串格式。写abc@xyz.com而不是“abc@xyz.com”。

正确的情况是: data:{_ fromAddress:JSON.stringify(Email),_ Subject:JSON.stringify(“Zero Debt App Invitation Request”),_ body:JSON.stringify(firstname +''+ lastname),clientName:JSON.stringify('Dr。 Hanoi'),clientEmail:abc@xyz.net}