当前位置: 首页 > 面试题库 >

使用日期将JQuery JSON发送到WCF REST

贝嘉泽
2023-03-14
问题内容

我知道有很多关于通过JQuery / JSON使用WCF REST的文章,但是我无法使其正常工作。我目前停留在日期参数上。以下是我的C#方法:

[OperationContract]
[WebInvoke]
[TransactionFlow(TransactionFlowOption.Allowed)]
string GoodRegister(DateTime pDtTimeStampTransac, Int32 pIDResource, Decimal pQty, enQtyLogType pQtyGoodLogType);

以下是我的JavaScript代码

/// <reference path="../Scripts/jquery-1.4.1-vsdoc.js" />
/// <reference path="json.js" />

Date.prototype.toMSJSON = function () {
  var date = '\\\/Date(' + this.getTime() + ')\\\/';
  return date;
};

function botaoclick() {
  var date = new Date().toMSJSON();
  var datavar = {
    'pDtTimeStampTransac': date,
    'pIDResource': 1,
    'pQty': 1
  };
  $.ajax(
  {
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "http://desk01:9876/ShopFloorService/script/GoodRegister",
    dataType: "json",
    data: JSON.stringify(datavar),
    //data: '{"pDtTimeStampTransac":date, "pIDResource":"teste", "pQty":"3"}',
    error: jqueryError,
    success: function (msg) {
      alert("back");
      var divForResult = document.getElementById("test");
      divForResult.innerHTML = "Result: <b>" + msg.d + "</b>";
    }
  }
  )
}

function jqueryError(request, status, error) {
  alert(request.responseText + " " + status + " " + error);
}

我的第一个问题是我不断收到日期序列化错误:

{"ExceptionDetail":{"HelpLink":null,"InnerException":{"HelpLink":null,"InnerException":{"HelpLink":null,"InnerException":null,"Message":"DateTime content '\\\/Date(1292616078638)\\\/' does not start with '\\\/Date(' and end with ')\\\/' as required for JSON.","StackTrace":"   at System.Runtime.Serialization.Json.JsonReaderDelegator.ParseJsonDate(String originalDateTimeValue)\u000d\u000a   at

它说它不会以开始和结束的方式开始/结束。

我的第二个问题是:我是否必须乘坐枚举数,还是有发送方法?


问题答案:

我拔了很多头发,为此流下了很多眼泪,但这确实可行。我修改了 toMSJSON 函数中的日期格式。WCF接受这种格式,我感谢Rick
Strahl
意识到了这一点。

Date.prototype.toMSJSON = function () {
    var date = '/Date(' + this.getTime() + ')/'; //CHANGED LINE
    return date;
};

您还需要将日期转换为UTC时间,否则您会得到各种有趣的东西,因此:

  var dt = ...;
  var dt1 = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(),   dt.getHours(), dt.getMinutes(), dt.getSeconds(), dt.getMilliseconds()));
  var wcfDateStr = dt1.toMSJSON();

希望这可以帮助。



 类似资料:
  • 问题内容: 我想将我的PHP服务器时间传递给我的JavaScript文件。 PHP代码: JavaScript: PHP代码返回2012年3月18日星期日12:01:23 +0800,这是澳大利亚/珀斯的正确时间。但这会返回无效的JavaScript日期对象。 当我尝试将其转换为时间戳时: 我得到了JavaScript日期2012年3月18日,星期日04:03:14 GMT + 0000(WET)

  • 我正试图发送一个突变到我的graphql服务器以更新日期。我的变异模式如下所示:

  • 问题内容: 我正在使用slf4j api进行记录的应用程序: (上面的代码显示了正在使用的类和程序包,但是很标准。) 我们使用配置如下的logback: 我们的某些代码利用了使用java.util.logging记录的第三方库- 特别是freemarker。从下面的控制台日志条目中可以看到,logback和jul都正在记录到控制台,但是它们没有使用相同的配置(logback条目使用我们的模式,ju

  • 问题内容: 我想以json格式向php发送一些数据,并在php中进行一些操作。我的问题是我无法通过Ajax将json数据发送到我的php文件。请帮助我该怎么做。我已经尝试过这种方式.. 在PHP中,我使用: 在php文件中添加print_r($ _ POST)时,它在firebug中显示array(0){}。 问题答案: 输了。您没有将JSON发送到服务器,而是发送了普通的POST查询(恰好包含J

  • 问题内容: 我对Web服务世界还很陌生,但是具有相关知识。 我需要实现将日志消息发送到Web服务而不是使用 Web Service附加程序 发送到文件的功能。 我是通过在 Google 上搜索该类别之一来阅读的,但我无法验证这一点。 问题答案: 当您扩展该类时,我假设您应该使用应重写的方法来初始化您的webservice类。我已经编写了DatabaseAppender和JmsAppender lo

  • 问题内容: 我正在开发一个React应用,该应用需要从elsaticsearch获取数据。在前端,实际上我正在尝试使用axios来执行请求: 我想获取带有某些ID的特定文档。上面的查询实际上在kibana内部有效。但是,以上查询返回my-type内的所有文档,我在这里做错了什么? 问题答案: 我认为以下应该可行。虽然爱可信自述说,是专门只为,,和请求,我没有看到在强制执行此代码的任何,和简化的测试