Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Signalr invode未返回输出xml,angularjs_Xml_Angularjs - Fatal编程技术网

Signalr invode未返回输出xml,angularjs

Signalr invode未返回输出xml,angularjs,xml,angularjs,Xml,Angularjs,对于SPA,必须使用angularjs,信号员。信号器调用需要xml作为基于输入xml的输入参数,输出xml将返回我必须解析和获取的基本数据。 解析数据包含要在HTML页面上使用的标题/标签,通过控制器进行设置 当通过invoke方法调用时,不会返回数据中的输出xml。 这是代码 function ServerTimeController($scope, signalRHubProxy) { var serverHubProxy = signalRHubProxy(

对于SPA,必须使用angularjs,信号员。信号器调用需要xml作为基于输入xml的输入参数,输出xml将返回我必须解析和获取的基本数据。 解析数据包含要在HTML页面上使用的标题/标签,通过控制器进行设置

当通过invoke方法调用时,不会返回数据中的输出xml。 这是代码

function ServerTimeController($scope, signalRHubProxy) {

            var serverHubProxy = signalRHubProxy(
                signalRHubProxy.defaultServer, 'serverTimeHub');

            $scope.getServerData = function () {
                serverHubProxy.invoke('getBnoData', '
    <?xml version="1.0" encoding="utf-8"?>
    <ENVELOPE NAME="PV.ENVELOPE" VERSION="1.00" CREATE="">
      <ENVELOPE_DATA>
        <TOKEN />
        <IPADDRESS />
        <USERAGENT />
        <LANGUAGE>LANGUAGE:ENGLISH</LANGUAGE>
        <ORIGINATOR>PV.TC.WEB.UI</ORIGINATOR>
      </ENVELOPE_DATA>
      <APPLICATION_REQUEST VERSION="1.00" LANGUAGE="EN">
        <BNO_REQUEST VERSION="1.00">
          <BNO_PRODUCTION_MODE>TRUE</BNO_PRODUCTION_MODE>
          <BNO_GROUP>LOGIN</BNO_GROUP>
          <BNO_INTERACTION_NAME>GET_T_PRE_APP_INIT</BNO_INTERACTION_NAME>
          <BNO_INTERACTION_VERSION>1.00</BNO_INTERACTION_VERSION>
          <BNO_INTERACTION_MODE>INTERACTION_MODE:VIEW</BNO_INTERACTION_MODE>
          <BNO_PARAMETERS>
            <BNO_PARAM NAME="LINGO">
              <VALUE>EN</VALUE>
            </BNO_PARAM>
          </BNO_PARAMETERS>
        </BNO_REQUEST>
      </APPLICATION_REQUEST>
    </ENVELOPE>
    ', function (data) {
                    $scope.currentServerTimeManually = data;
                    console.log(data);
                });
            };
        }; 
然而,当使用srv.client.receiveData时,它会给出输出xml,但我需要将其集成到angularjs中

中心代码如下:

using Microsoft.AspNet.SignalR;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Web;
using System.Xml;

using IDF.FACADE;

namespace PV.COM.WEB
{
    public class PvHub : Hub
    {
        ///
<summary> /// Function to be called from client siede
  /// </summary>
///
<param name="piAppRequest">
</param>
public void GetBnoData(string piAppRequest)
        {

...deleted code here

             /// call BackendAPI (Facade) to retrieve XML with content.
                    callFacade = new Facade("PV.GLOBAL.APPCONFIG.XML");
                    answer = callFacade.ExecuteAppRequest(piAppRequest);

...deleted code here

            /// call function on JS client side to send XML data with content filled by Facade 
             Clients.Caller.receiveData(answer);
        }

...deleted code here

    }
}

我认为有一些事情看起来不正确,但我最清楚的是,您正在向调用它的receiveData的调用方发送数据,但是您没有在客户端代码中定义任何receiveData处理程序

更新

正如我所说,您没有在客户机上定义receiveData回调,但是添加它会对您当前的客户机代码组织产生影响。这不是一件困难的事情,但你必须改变一些东西。相反,如果您只是从以下位置更改中心代码:

public void GetBnoData(string piAppRequest)
{
    //getting answer...

    Clients.Caller.receiveData(answer);
}


然后根据当前客户端代码。完成。。。就行了。

您能添加Hub的代码吗?不清楚如何从那里返回数据。请告诉我如何在angularjs工厂代码中调用receiveData谢谢,问题是我在建立连接后调用了receiveData,这应该总是在之前。现在能够捕获数据。
public void GetBnoData(string piAppRequest)
{
    //getting answer...

    Clients.Caller.receiveData(answer);
}
public dynamic GetBnoData(string piAppRequest)  //from void to dynamic
{
    //getting answer...

    return answer;
}