本文将分享从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 – 具有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 到控制器类?
我正在尝试将 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({ 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控制器操作
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发送数据到控制器
我想知道这两种语法之间的区别是什么:
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数
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>?></span></span>
<script> $.ajax({ url: "http://test.localhost/UserInterfaceForChatroom/UserInformation.php?email=pshuyue@gmail.com", type: "GET", dataType: 'jsonp', // 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数等更多相关知识的信息可以在本站进行查询。
本文标签: