GVKun编程网logo

从 AJAX 发送 JSON 到控制器类(ajax发送json数据)

6

本文将分享从AJAX发送JSON到控制器类的详细内容,并且还将对ajax发送json数据进行详尽解释,此外,我们还将为大家带来关于ajax–具有MVC4API控制器的POSTJSON、ajax–返回J

本文将分享从 AJAX 发送 JSON 到控制器类的详细内容,并且还将对ajax发送json数据进行详尽解释,此外,我们还将为大家带来关于ajax – 具有MVC 4 API控制器的POST JSON、ajax – 返回JSON或部分html的ASP.NET MVC控制器操作、Ajax发送数据到控制器、ajax调用返回php接口返回json数据 ajax jsonp ajax json实例 ajax获取后台json数的相关知识,希望对你有所帮助。

本文目录一览:

从 AJAX 发送 JSON 到控制器类(ajax发送json数据)

从 AJAX 发送 JSON 到控制器类(ajax发送json数据)

如何解决从 AJAX 发送 JSON 到控制器类?

我正在尝试将 JSON 发送到一个类,这看起来很简单,但由于某种原因它总是显示为空?情况如下:

AjaxCall 由更改事件触发。 url 正确,type 设置为 POST,数据已经用 JSON.stringify() 转换并记录为 {"country":"Canada"}

function AjaxCall(u,d,t){
    console.log(d);
    return $.ajax({
        url: u,type: t ? t : ''GET'',data: d,dataType: ''json'',contentType: ''application/json''
    });
} 

类被触发,但国家字符串始终为空。

[HttpPost]
public JsonResult GetProv(string country)
{
    //do whatever
}

我错过了什么?!

编辑: 我的模型:

public class country
{
    public int Id { get; set; }
    public string Name { get; set; }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

ajax – 具有MVC 4 API控制器的POST JSON

ajax – 具有MVC 4 API控制器的POST JSON

我有这个代码:
$.ajax({


        type: "POST",url: "/api/slide",cache: false,contentType: "application/json; charset=utf-8",data: '{"Title":"fghfdhgfdgfd"}',dataType: "json",

这是我的控制者:

public class SlideController : ApiController
{

    // POST /api/Slide
    public void Post(string Title)
    {
    }

当我运行代码并调用/ api / Slide时,[标题]没有数据,为空。

如何将JSON发布到API控制器?

POST http://127.0.0.2:81/api/slide HTTP/1.1
Host: 127.0.0.2:81
Connection: keep-alive
Content-Length: 18
Origin: http://127.0.0.2:81
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML,like Gecko) Chrome/21.0.1180.89 Safari/537.1
Content-Type: application/json; charset=UTF-8
Accept: application/json,text/javascript,*/*; q=0.01
Referer: http://127.0.0.2:81/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Title=fghfdhgfdgfd
定义视图模型:
public class Slideviewmodel
{
    public string Title { get; set; }
}

那么您的控制器操作将此视图模型作为参数:

public class SlideController : ApiController
{
    // POST /api/Slide
    public void Post(Slideviewmodel model)
    {
        ...
    }
}

最后调用动作:

$.ajax({
    type: 'POST',url: '/api/slide',contentType: 'application/json; charset=utf-8',data: JSON.stringify({ title: "fghfdhgfdgfd" }),success: function() {
        ...    
    }
});

其原因是诸如字符串的简单类型从URI绑定。我还邀请您阅读关于Web API中的模型绑定的following article。

ajax – 返回JSON或部分html的ASP.NET MVC控制器操作

ajax – 返回JSON或部分html的ASP.NET MVC控制器操作

我试图创建控制器操作,将返回JSON或部分html依赖于一个参数。什么是最好的方式来获取结果返回到一个MVC页面异步?
在您的action方法中,返回Json(object)以将JSON返回到您的网页。
public ActionResult SomeActionMethod() {
  return Json(new {foo="bar",baz="Blech"});
}

然后只需使用Ajax调用action方法。您可以使用ViewPage中的辅助方法之一,如

<%= Ajax.ActionLink("SomeActionMethod",new AjaxOptions {OnSuccess="somemethod"}) %>

SomeMethod将是一个javascript方法,然后评估返回的Json对象。

如果你想返回一个纯字符串,你可以只使用ContentResult:

public ActionResult SomeActionMethod() {
    return Content("Hello World!");
}

ContentResult默认返回一个text / plain作为它的contentType。
这是可重载的,所以你也可以做:

return Content("<xml>This is poorly formatted xml.</xml>","text/xml");

Ajax发送数据到控制器

Ajax发送数据到控制器

我想知道这两种语法之间的区别是什么:

  var value = $("#myForm").serialize();
  $.ajax({
    type: "post",url: "testMethod",data: value
});

  var value = $("#myForm").serialize();
  $.ajax({
    type: "post",data: "valueName=" + value
});

我以为它们是相同的,但是当我使用第一个时,在我的spring控制器中,此属性具有完全填充的属性。当我使用第二种方法时,该属性的所有属性均为null。

有人对此有解释吗?

这是我的 JSP

<form:form id="myForm" action="*" modelAttribute="filters" >

    <form:input ...  path="age" />  
    <form:input ...  path="gender" />   
    <form:input ...  path="location" />

</form:form>

这是JS

$('#ok_provinces_btn_id').click(function(){
var second = $('#secondAttr').val();

var f = $("#myForm").serialize();

$.ajax({
    type: "post",data: ?????
});

});

这是我的 控制器

    @RequestMapping(value="testMethod",method=RequestMethod.POST)
public void testMethod(
        @ModelAttribute("filters") FiltersWrapper filters,@RquestParam String second
        ){

             //Here the **second** param is OK 
    filters.getAge(); //NULL
}

ajax调用返回php接口返回json数据 ajax jsonp ajax json实例 ajax获取后台json数

ajax调用返回php接口返回json数据 ajax jsonp ajax json实例 ajax获取后台json数

php代码如下:

<span><?php </span>header(<span>''Content-Type: application/json''</span>);
    header(<span>''Content-Type: text/html;charset=utf-8''</span>);

    <span>$email </span><span>= </span><span>$_GET[</span><span>''email''</span><span>]</span>;

    <span>$user </span><span>= </span><span>[]</span>;

    <span>$conn </span><span>= @</span>mysql_connect(<span>"localhost"</span>,<span>"Test"</span>,<span>"123456"</span>) <span>or die</span>(<span>"Failed in connecting database"</span>);
    mysql_select_db(<span>"Test"</span>,<span>$conn</span>);
    mysql_query(<span>"set names ''UTF-8''"</span>);
    <span>$query </span><span>= </span><span>"select </span><span><em>*</em></span><span> from UserInformation where email = ''"</span><span>.</span><span>$email</span><span>.</span><span>"''"</span>;
    <span>$result </span><span>= </span>mysql_query(<span>$query</span>);
    <span>if </span>(<span>null </span><span>== </span>(<span>$row </span><span>= </span>mysql_fetch_array(<span>$result</span>))) <span>{
</span><span>echo </span><span>$_GET[</span><span>''callback''</span><span>]</span><span>.</span><span>"(no such user)"</span>;
    <span>} </span><span>else </span><span>{
</span><span>$user[</span><span>''email''</span><span>] </span><span>= </span><span>$email</span>;
        <span>$user[</span><span>''nickname''</span><span>] </span><span>= </span><span>$row[</span><span>''nickname''</span><span>]</span>;
        <span>$user[</span><span>''portrait''</span><span>] </span><span>= </span><span>$row[</span><span>''portrait''</span><span>]</span>;
        <span>echo </span><span>$_GET[</span><span>''callback''</span><span>]</span><span>.</span><span>"("</span><span>.</span>json_encode(<span>$user</span>)<span>.</span><span>")"</span>;
    <span>}
</span><span>?&gt;</span></span>
登录后复制
js代码如下:

<script>
        $.ajax({
            url: "http://test.localhost/UserInterfaceForChatroom/UserInformation.php?email=pshuyue@gmail.com",
            type: "GET",
            dataType: &#39;jsonp&#39;,
            //            crossDomain: true,
            success: function (result) {
                //                data = $.parseJSON(result);
                //                alert(data.nickname);
                alert(result.nickname);
            }
        });
    </script>
登录后复制

其中遇到了两个问题:

1.第一个问题:

Uncaught SyntaxError: Unexpected token :

解决方案如下:

This has just happened to me, and the reason was none of the reasons above. I was using the jQuery command getJSON and adding callback=? to use JSONP (as I needed to go cross-domain), and returning the JSON code {"foo":"bar"} and getting the error.

This is because I should have included the callback data, something like jQuery17209314005577471107_1335958194322({"foo":"bar"})

Here is the PHP code I used to achieve this, which degrades if JSON (without a callback) is used:

立即学习“PHP免费学习笔记(深入)”;

<span>$ret</span><span>[</span><span>''foo''</span><span>]</span><span>=</span><span>"bar"</span><span>;</span><span>
finish</span><span>();</span><span>function</span><span> finish</span><span>()</span><span>{</span><span>
    header</span><span>(</span><span>"content-type:application/json"</span><span>);</span><span>if</span><span>(</span><span>$_GET</span><span>[</span><span>''callback''</span><span>])</span><span>{</span><span>print</span><span> $_GET</span><span>[</span><span>''callback''</span><span>].</span><span>"("</span><span>;</span><span>}</span><span>print</span><span> json_encode</span><span>(</span><span>$GLOBALS</span><span>[</span><span>''ret''</span><span>]);</span><span>if</span><span>(</span><span>$_GET</span><span>[</span><span>''callback''</span><span>])</span><span>{</span><span>print</span><span>")"</span><span>;</span><span>}</span><span>exit</span><span>;</span><span>}</span>
登录后复制

Hopefully that will help someone in the future.

2.第二个问题:

解析json数据。从上面的javascript中可以看到,我没有使用jquery.parseJSON()这些方法,开始使用这些方法,但是总是会报

VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1

的错误,后来不用jquery.parseJSON()这个方法,反而一切正常。不知为何。

以上就介绍了ajax调用返回php接口返回json数据,包括了ajax,json方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

今天关于从 AJAX 发送 JSON 到控制器类ajax发送json数据的介绍到此结束,谢谢您的阅读,有关ajax – 具有MVC 4 API控制器的POST JSON、ajax – 返回JSON或部分html的ASP.NET MVC控制器操作、Ajax发送数据到控制器、ajax调用返回php接口返回json数据 ajax jsonp ajax json实例 ajax获取后台json数等更多相关知识的信息可以在本站进行查询。

本文标签: