【问题标题】:What is the proper way to do an http Post from Flash to an Asp.Net MVC Application?从 Flash 到 Asp.Net MVC 应用程序的 http Post 的正确方法是什么?
【发布时间】:2009-07-05 04:57:29
【问题描述】:

以下是我需要了解的一些事项:

  1. 你为 URLRequest 放了什么?这让我有点困惑,因为 Asp.Net MVC 是方法而不是页面

  2. 如何为 POST 分配参数?

  3. 如何执行 URLRequest 来完成 Http Post?

任何有关如何从 Flash 发布到 Asp.Net MVC 应用程序的信息都会有所帮助。

谢谢,
马特

编辑:我问这个是因为我遇到了 IO 错误和流错误:

错误 #2044:未处理的 ioError:。文本=错误 #2032:流错误。网址:http://www.mysite.com/MyController/MyMethod 在 Main/postToMySite()

人们告诉我,这通常意味着 url 不存在。我试过在地址栏中输入:http://www.mysite.com/MyController/MyMethod,它说找不到资源,但我知道它确实存在,因为它可以从我的 javascript 中完美调用(我已经测试过了)。

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MyMethod(FormCollection formValues)
    {
        return this.Json("Completed");
    }

注意!!!! 我刚刚在另一个网址上测试了它,一个没有[AcceptVerbs(HttpVerbs.Post)] 的网址,它没有给我任何错误!知道这是为什么吗?在没有[AcceptVerbs(HttpVerbs.Post)] 的情况下发帖是否仍然有效?

【问题讨论】:

  • 如果你问如何在 Flash 中进行 POST 请求,你在服务器端使用什么无关紧要,使用 PHP、Rails 等没有什么不同。

标签: asp.net-mvc flash actionscript-3 post http-post


【解决方案1】:

检查 docslink text 中的 URLRequest.data 属性和 URLRequest.method 属性

基本上,method 属性定义了您是在执行 HTTP GET 还是 HTTP POST。您放入 data 属性的对象是将作为查询字符串添加到 HTTP GET 中或添加为 HTTP POST 的消息正文的数据。

在 URLLoader 中使用那个 URLRequest 实例,然后让你的叔叔鲍勃。此外,如果您使用 flex,您还可以查看使用 HTTPService component

【讨论】:

    【解决方案2】:

    您不需要为 ASP.NET MVC 做任何特殊的事情。

    【讨论】:

    • 你确定吗?我收到一个 IO 错误和一个流错误,人们告诉我这很可能是因为 URL 不正确。如果我在地址栏中输入 www.mysite.com/MyController/MyMethod ,它会说找不到资源,但我知道该方法存在,因为在我的 javascript 中被调用就好了(我已经测试过了) .
    【解决方案3】:

    您如何从 Flash 向常规的 asp.net 页面进行 POST?应该没有什么不同。

    编辑:如果您在某个方法上使用[AcceptVerbs(HttpVerbs.Post)],那么您将无法通过在浏览器中输入网址来访问该方法。我认为大多数时候,对于同一个 Action 名称,您还会有一个 GET 方法重载,如下所示:

    //
    // GET: /MyController/MyMethod
    
    public ActionResult MyMethod()
    {
        return View();
    }
    
    //
    // POST: /MyController/MyMethod
    
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MyMethod(FormCollection formValues)
    {
        return this.Json("Completed");
    }
    

    如果您没有响应 GET 的重载方法,那么 http://www.mysite.com/MyController/MyMethod 将无法用作 GET,当您在浏览器的地址栏中键入 url 时会发生这种情况。

    是的,在没有[AcceptVerbs(HttpVerbs.Post)] 的方法上执行 POST 仍然有效,但是该属性的存在是为了防止与其他动词命中该方法,因为通常响应 POST 操作的方法应该只响应 POST 操作.

    【讨论】:

    • 我只需要一些指针,甚至是教程的链接(我已经四处搜索,但没有运气),一般来说,从 Flash 向 Asp.Net 进行 POST 的语法...
    【解决方案4】:

    尝试使用 Flash 中的 NetConnection 类向您的服务器发送 POST 可能会有一些运气。您可能需要设置一些 .NET AMF 的东西才能使其正常工作,但是一旦您完成了设置,就可以很容易地来回传递数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 2022-07-23
      • 2018-01-12
      • 2017-08-16
      • 1970-01-01
      • 2016-11-23
      • 2019-09-08
      相关资源
      最近更新 更多