相关疑难解决方法(0)

jsonp与jquery

你能给出一个用jquery读取jsonp请求的简单例子吗?我无法让它发挥作用.

ajax jquery jsonp

89
推荐指数
1
解决办法
8万
查看次数

使WCF Web服务与GET请求一起使用

背景
我以前创建了ASMX Web服务,并且能够使用地址约定从Web浏览器和Ajax GET请求访问该服务:
MyService.asmx/MyMethod?Param=xxx

我刚开始使用WCF并在我的ASP.NET项目中创建了一个新的Web服务.它创建一个扩展名为.svc的文件,例如MyService.svc.

现状
我可以使用WcfTestClientVS2008附带的服务来使用该服务.我还可以通过在另一个项目中添加服务引用或使用svcutil.exe命令行生成代理和配置文件来创建自己的WCF客户端.

问题
当我尝试使用浏览器中的服务时MyService.svc/MyMethod?MyParam=xxx,我得到一个没有任何错误的空白页面.

我尝试过
我已经在web.config中添加了一个basicHttpBinding,并在行为配置中使其成为HttpGetEnabled.我还将[WebGet(UriTemplate = "MyMethod?MyParam={MyParam}")]属性添加到我的操作合同中.

我已经遵循了其他堆栈溢出问题中的信息:
WCF服务的REST/SOAP EndPoints

但是,在执行这些步骤后,我得到一个空白页面或HTTP 404错误.代码没有什么特别之处.我只是接受一个字符串作为参数并返回"Hello xxx".这是一个基本的"Hello WCF World"概念验证类型的东西.


更新 - 这是相关的代码

[ServiceContract]
public interface IMyService
{
    [WebGet(UriTemplate = "MyMethod/MyParam={MyParam}")]
    [OperationContract]
    string MyMethod(string MyParam);
}
Run Code Online (Sandbox Code Playgroud)

Web.Config - system.serviceModel Section

<system.serviceModel>     
    <behaviors>
        <serviceBehaviors>          
            <behavior name="MyServiceBehavior">
              <serviceMetadata httpGetEnabled="true"  />
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="MyServiceBehavior" name="MyService">
        <endpoint address="" 
                       binding="wsHttpBinding" contract="IMyService" />
        <endpoint address="MyService.svc" 
                       binding="basicHttpBinding"  contract="IMyService" …
Run Code Online (Sandbox Code Playgroud)

asp.net rest wcf web-services

41
推荐指数
3
解决办法
6万
查看次数

如何使用WCF自托管处理Ajax JQUERY POST请求

创建RESTful WCF服务器有很多原因(很容易),如果你可以避免ASP及其安全框(如果你所做的只是返回信息的简单请求),那就更好了.请参阅:http://msdn.microsoft.com/en-us/library/ms750530.aspx了解如何执行此操作.

我发现处理AJAX(JQUERY)GET请求很容易.但是在POST中处理JSON很棘手.

以下是一个简单的GET请求合同的示例:

    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    String Version();
Run Code Online (Sandbox Code Playgroud)

实现就在这里(返回一个JSON)

    public partial class CatalogService : ICatalogService
{
    public String Version()
    {
        mon.IsActive = true;
        this.BypassCrossDomain();
        ViewModel.myself.TransactionCount++;
        return ViewModel.myself.VersionString;
    }
}
Run Code Online (Sandbox Code Playgroud)

啊,但如果你想发布一些JSON怎么办?你会发现很多关于堆栈溢出的文章告诉你所要做的就是:

    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    BuildResponse BuildToby(BuildRequest request);
Run Code Online (Sandbox Code Playgroud)

它将接收JSON消息,反序列化为Plain .NET对象(PO​​NO)并让您使用它.事实上,当我在Fiddler中构建请求时,这工作正常.

POST /BuildToby HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
Host: localhost:4326
Content-Length: 1999
Run Code Online (Sandbox Code Playgroud)

但是,当您在JQUERY 1.8中使用以下AJAX时,您会发现一个SURPRISE:

通过指定"application/json"的内容类型,您会发现有一个"预检"检查由浏览器触发,以查看您是否可以发布除了www-url-encloded post消息之外的其他内容.(堆栈中有关于此溢出的注释).

    var request = JSON.stringify({ FrameList: ExportData.buildList });
    var jqxhr = $.ajax({
    type: …
Run Code Online (Sandbox Code Playgroud)

wcf jquery http-post wcf-data-services

14
推荐指数
1
解决办法
1万
查看次数

如何避免使用jquery ajax中的跨域策略来使用wcf服务?

如何避免在jquery ajax中使用跨域策略来使用wcf服务?

我需要在web.config中为跨域策略做些什么?

wcf jquery cross-domain

7
推荐指数
1
解决办法
1万
查看次数

由于CORS,Azure网站上的HTTP OPTIONS请求失败

我最近将我们的服务器从Rackspace CloudSites(在Apache/Linux上运行)转移到了Windows Azure网站.自迁移以来,我们的REST API上的所有jQuery AJAX请求都因CORS而失败.

我们使用自定义标头,因此jQuery在运行实际API调用之前会发出Pre-flight HTTP OPTIONS请求.问题是OPTIONS请求似乎没有到达我的PHP代码,而是由其他一些我似乎无法控制的实体(显然是Web服务器)返回.

我已经使用以下标题几年了所以我很确定问题不在PHP代码中:

<?php
    $this->output->set_header("Access-Control-Allow-Origin: *");
    $this->output->set_header("Access-Control-Allow-Methods: GET,POST,DELETE,HEAD,PUT,OPTIONS");
    $this->output->set_header("Access-Control-Allow-Headers: X-Olaround-Debug-Mode, Authorization, Accept");
    $this->output->set_header("Access-Control-Expose-Headers: X-Olaround-Debug-Mode, X-Olaround-Request-Start-Timestamp, X-Olaround-Request-End-Timestamp, X-Olaround-Request-Time, X-Olaround-Request-Method, X-Olaround-Request-Result, X-Olaround-Request-Endpoint" );
?>
Run Code Online (Sandbox Code Playgroud)

我猜这个问题是特定于Azure网站的,因为代码似乎在我的开发机器(Windows 8/IIS 8.0)上运行良好.我是Azure的新手(以及一般的基于Windows的托管)所以我几乎不知道如何处理和调试此问题,因为Azure网站允许非常小的控制.

php jquery azure cors azure-web-sites

6
推荐指数
3
解决办法
2万
查看次数