【问题标题】:how to refer xml file from client side application which is generated by webservice如何从 webservice 生成的客户端应用程序中引用 xml 文件
【发布时间】:2025-11-21 20:55:02
【问题描述】:

这是我在 web 服务上的代码,它成功创建了 xml 文件并保存在特定的目标文件夹中。

public bool GetList(string keyword1, string streetname, string lat, string lng, string radius)
{

  XmlDocument xmlDoc=  CreateXML( keyword1,streetname,lat,lng,radius);
  xmlDoc.Save(@"C:\Documents and Settings\block\Block3.xml");
  return true;

}

我正在尝试使用以下代码从客户端应用程序读取该文件,但我遇到了一些问题。

$.ajax({
                type: "POST",
                async: false, 
                url: "/block/JsonWebService.asmx/GetList",
                data: keyword2,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                failure: ajaxCallFailed,
                success: ajaxCallSucceed

            });
            });

function ajaxCallSucceed(response) {
            if (response.d == true) {
               searchLocationsNear();
            }
            else {
                alert("can not save");
            }
        }
function searchLocationsNear() {
            var radius = document.getElementById('radiusSelect').value;

            var searchUrl ="Block3.xml";// is this the correct way to refer to the 
                                                xml file stored in app folder    
            GDownloadUrl(searchUrl, function(data) {
                var xml = GXml.parse(data);
                      ........................................
                      .......................................

【问题讨论】:

  • 您的客户端应用程序是否在浏览器中运行?然后就无法访问文件系统了。
  • 感谢回复,我的客户端应用程序是在浏览器中运行的 html 页面,var searchUrl ="Block3.xml"; GDownloadUrl(searchUrl, function(data) { var xml = GXml.parse(data); ...................当从应用程序文件夹中引用 Block3.xml 文件时,它第一次可以正常工作,但是,如果它们对 xml 文件进行了任何更改,它根本不会反映它仍然引用旧的 xml 文件本身

标签: c# javascript xml jquery


【解决方案1】:

您的网址应该是网络上的完整路径

例如 var searchUrl ="http://yourdomain/Block3.xml";

我看到您正在将文件保存在文档和设置中。你不应该把它保存在那个位置。

【讨论】:

  • 感谢您的回复,您在构建 xml 输出后完全正确,我保存在特定目的地,我不清楚我的 web 服务代码应该将 xml 输出保存在哪里,以便我可以从客户端应用程序访问它,你能帮忙吗,因为我对 Web 应用程序开发很陌生
  • @manesh 您应该将其保存在您网站的某个文件夹中。您的 web 服务代码应该更改为 xmlDoc.Save(Server.MapPath("~/block/Block3.xml"));,您的 js 代码将是 var searchUrl ="http://yourdomain/block/Block3.xml"
【解决方案2】:

通过浏览器中的 javascript,您无法访问服务器的文件系统(即使服务器是本地主机)。

您可能希望将 xml 文件保存到可以通过 http 请求访问的位置,并使用脚本中的 URL 来实际检索文件。

【讨论】:

  • 感谢您的回复,请您帮忙解决如何将 xml 存储到客户端可以访问的位置这是我的 web 服务代码 sn-p [WebService(Namespace = "tempuri.org/")] [WebServiceBinding( ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public bool GetList() { XmlDocument xmlDoc= CreateXML(keyword1,streetname,lat,lng, radius); xmlDoc.Save(@"C:\Documents and Settings\Vijay.EKO-03\Desktop\blockseek3-9-2010\Block3.xml"); return true; }