我的Sencha Touch应用正在将表单发布到我的 WebService上,但不是发送POST
而是发送OPTIONS
。
我在这里读取了类似的线程,但是我只是不知道如何OPTIONS
在代码中处理该方法。
我确实尝试将[AllowAjax]
属性添加到Action中,但是MVC3中似乎不存在该属性。
选项/ GetInTouch / CommunicateCard HTTP / 1.1
主机:webservice.example.com
引用 网址
:http://192.168.5.206/
Access-Control-Request-Method:POST
来源:http://192.168.5.206
用户代理:Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_7_0)AppleWebKit /
534.24(KHTML,例如Gecko)Chrome / 11.0.696.71 Safari / 534.24
访问控制请求标头:X-Requested-With,内容类型
接受: /
接受编码: gzip,deflate,sdch
接受语言:en-US,zh; q = 0.8
接受字符集:ISO-8859-1,utf-8; q = 0.7,*; q = 0.3
在我的ActionMethod中,我正在使用以下代码。
public JsonpResult CommunicateCard(CommunicateCard communicateCard)
{
// Instantiate a new instance of MailMessage
MailMessage mMailMessage = new MailMessage();
// removed for security/brevity
// Set the body of the mail message
mMailMessage.Body = communicateCard.name; // THIS IS CURRENTLY BLANK :-(
// removed for security/brevity
mSmtpClient.Send(mMailMessage);
// do server side validation on form input
// if it's valid return true
// else return false
// currently returning NULL cuz I don't care at this point.
return this.Jsonp(null);
}
原来我必须创建一个 ActionFilterAttribute
namespace WebService.Attributes
{
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
filterContext.RequestContext.HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "*");
string rqstMethod = HttpContext.Current.Request.Headers["Access-Control-Request-Method"];
if (rqstMethod == "OPTIONS" || rqstMethod == "POST")
{
filterContext.RequestContext.HttpContext.Response.AppendHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
filterContext.RequestContext.HttpContext.Response.AppendHeader("Access-Control-Allow-Headers", "X-Requested-With, Accept, Access-Control-Allow-Origin, Content-Type");
}
base.OnActionExecuting(filterContext);
}
}
}
问题内容: 看来我应该这样做: 通过将其设置为来配置dispatcherServlet 但是,考虑到我没有XML配置,或者代码中没有任何各种初始化程序类(此答案提到),该怎么做? 在一个类中,我有一个像这样的方法,当前不会被调用。 Spring Boot 1.2.7.RELEASE; 一个简单的设置与Spring REST指南并没有太大区别 。 问题答案: 选项1:Spring Boot属性(仅适
每次编译代码时,我都会收到这样一条消息:“用法:PApplet[options][sketch args]请参阅Javadoc for PApplet以获取解释。”我使用的代码是通过闪存驱动器从我的旧电脑中导入的,在那台电脑上运行时效果良好。当我试图把文件从SRC打开后,把它放在我的工作区,它没有考虑它是一个项目,所以我把它放在一个新的处理项目中。所以基本上我不确定我是否安装了处理错误或者代码中有
我正在尝试处理错误并为404,403等显示适当的页面。 为此,我制作了一个错误处理过滤器,它可以像预期的那样工作。也就是说,当我试图要求 mysite.com/Home/random_non-existent_action 用户被重定向到我的自定义404页面,并作为响应代码返回404。这同样适用于401和403。 我已经通过错误处理过滤器和在web上进行的修改实现了这一点。配置为: 这就是问题开始
问题内容: 我想要一个文本区域,可以处理按 Tab 键的情况。 在默认情况下,如果您按 Tab 键,则焦点将离开文本区域。但是,当用户想要在文本区域中输入 Tab 键时会怎样呢? 我可以捕捉到此事件并将焦点返回到文本区域并将标签添加到 当前 光标位置吗? 问题答案:
问题内容: 如何在Go界面中处理重复方法? 如果我运行此代码,则会发生以下错误。 如何处理这样的情况?在这种情况下如何避免重复方法? 问题答案: 这样做的方法是显式提供所需的方法,而不是使用速记语法: 这看起来像是代码重复,但是请注意,重复代码在Go中并不是一件不典型的事情,尤其是当它导致更清晰的代码时。 另请注意:如果你想在其他语言中典型的继承权,它可能看起来像你做这个丢失一些信息,因为你没有记
问题内容: 如何用Java 处理? 问题答案: 我不确定“句柄”是什么意思。 您当然可以捕获该错误: 但这很可能是个坏主意,除非您确切地知道自己在做什么。