- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 jQuery,用于设置每个(空)DIV(具有以字母字符开头的唯一 id)的内容,该 DIV 具有 class = 'editable'。我使用带有 GET 方法的 MVC4 api Controller 来返回 HTML 字符串。
由于某种原因,下面的 loadStuff 函数正在输出引号,这些引号可以在网页中返回的内容之前和之后看到。这种情况发生在每个 DIV 上,并且绝对不会在返回字符串的 api Controller 方法中返回。
$(document).ready(function () {
$('.editable').each(function () {
var curId = this.id.replace('content', '');
loadStuff(curId, this.id);
})
});
function loadStuff(curId, targetId) {
$('#' + targetId).load('api/briefingItem/' + curId);
}
但是,当我用下面的代码替换 loadStuff 函数并使用 .appendTo 时,引号不会出现。
function loadStuff(curId, targetId) {
$.getJSON("api/briefingItem/" + curId,
function (data) {
$(data).appendTo('#' + targetId);
})
}
对于返回一个简单的字符串和文档表明,这似乎有点过分了。谁能解释一下这种不寻常的行为?
API Controller
// GET api/BriefingItem/5
public string Get(int id)
{
string newVal = string.Empty;
switch (id)
{
case 12:
newVal = @"<p>this is some example text that you can edit inside the <strong>tinymce editor</strong>.</p><p>nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. nam sed lectus quam, ut sagittis tellus. quisque dignissim mauris a augue rutrum tempor. donec vitae purus nec massa vestibulum ornare sit amet id tellus. nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. aliquam molestie volutpat dapibus. nunc interdum viverra sodales. morbi laoreet pulvinar gravida. quisque ut turpis sagittis nunc accumsan vehicula. duis elementum congue ultrices. cras faucibus feugiat arcu quis lacinia. in hac habitasse platea dictumst. pellentesque fermentum magna sit amet tellus varius ullamcorper. vestibulum at urna augue, eget varius neque. fusce facilisis venenatis dapibus. integer non sem at arcu euismod tempor nec sed nisl. morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros.</p>";
break;
case 13:
newVal = @"<p>look up $(content).load() jquery method and the callback function.</p>";
break;
default:
newVal = @"<h3>click to enter content.</h3>";
break;
}
return newVal;
}
最佳答案
来自 Web API 的实际响应是一个用双引号括起来的字符串。
$.getJSON()
和 .load()
方法之间的区别在于 $.getJSON
方法假设响应是一个 JSON 编码字符串 => 它去掉了双引号,其中 .load 假定为 HTML,并且不对结果进行任何处理。
因此,您可以让 Web API Controller 操作返回 text/html
而不是 application/json
编码的请求:
public HttpResponseMessage Get(int id)
{
string newVal = string.Empty;
switch (id)
{
case 12:
newVal = @"<p>this is some example text that you can edit inside the <strong>tinymce editor</strong>.</p><p>nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. nam sed lectus quam, ut sagittis tellus. quisque dignissim mauris a augue rutrum tempor. donec vitae purus nec massa vestibulum ornare sit amet id tellus. nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. aliquam molestie volutpat dapibus. nunc interdum viverra sodales. morbi laoreet pulvinar gravida. quisque ut turpis sagittis nunc accumsan vehicula. duis elementum congue ultrices. cras faucibus feugiat arcu quis lacinia. in hac habitasse platea dictumst. pellentesque fermentum magna sit amet tellus varius ullamcorper. vestibulum at urna augue, eget varius neque. fusce facilisis venenatis dapibus. integer non sem at arcu euismod tempor nec sed nisl. morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros.</p>";
break;
case 13:
newVal = @"<p>look up $(content).load() jquery method and the callback function.</p>";
break;
default:
newVal = @"<h3>click to enter content.</h3>";
break;
}
var response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(newVal, Encoding.UTF8, "text/html");
return response;
}
现在您可以使用 .load()
方法,但不能使用 $.getJSON
方法。
关于jquery - jQuery .load 与 getJSON 结果中的引号输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12579159/
我正在尝试获取客户端的 IP 地址和 GPS 坐标。使用 jQuery,我有这个: $.getJSON("http://jsonip.appspot.com/", function(data) {
这个问题已经有答案了: Why does JQuery.getJSON() have a success and a done function? (2 个回答) 已关闭 6 年前。 我想知道这两个代
所以首先,是的,我知道有几个答案,但没有一个能够解决我的问题。首先我将展示我的代码HTML: Shop
假设我有以下 JavaScript: (function($) { $.getJSON(url, function(data) { $.each(data.rows, function(i
是否可以使用 jQuery 在另一个 getJSON 请求中使用 getJSON 请求? 像这样: // Population the Requests List // jQuery AJAX cal
我有以下代码,该代码已针对此问题进行了简化。基本上我有一个循环,在每次迭代中调用 jquery getJSON 函数,调用 API 端点来获取一些天气数据。问题是,当 getJSON 请求被触发时,我
我有一个使用 getJSON 的函数,但它没有像我预期的那样工作。 function balbla(name, param) { $.getJSON("/blabla.json?nam
我有一段代码,例如: $.getJSON("http://mysite.org/polls/saveLanguageTest?url=" + escape(window.location.href)
我正在使用jquery.getJSON() ,但我不知道如何进行错误处理。这些是我需要处理的一些情况。 1)如果返回的数据为null怎么办? 2)如果返回的数据不能解析json怎么办? 3) 如果返回
我正在通过参与一个测试项目(包括 SubSonic 和 jQuery)来学习 asp.net mvc。 我遇到的问题是,每次我想要返回的不仅仅是简单字符串(例如 Json 对象)时,我都会遇到困难,因
执行跨域查询,如果运行的URL不可用(404),如何执行某个功能?我尝试这样的事情: $.getJSON({ url:'example.php?callback=?', statusCode: { 4
我在 jQuery 中搜索了相关主题,但没有找到任何方法来解决我的问题。 $(document).ready(function(){ $("#inputForm").submit(functi
当调用 yahoo Web 服务 (http://boss.yahooapis.com/ysearch) 返回数据集时,是否可以设置超时并在超时后退出例程? jQuery.getJSON("http:
我正在使用 jQuery getJSON() 函数。这个函数获取数据没有问题。但有时等待,等待等待......我的加载栏在页面中心显示加载加载。 所以 jQuery ajax() 函数有一个超时变量。
我有一个 html 代码: asd $('button').click( function() { $.getJSON('/schedule/test/', function
目标:我所追求的是每次在数据库中添加某些内容时(在 $.ajax 到 Submit_to_db.php 之后),从数据库获取数据并刷新 main.php(通过 draw_polygon 更明显)。 所
我已经阅读了文档并用谷歌搜索了此内容,但没有看到问题所在。我正在尝试从本地 json 文件获取一些数据。我已在 JSONLint 验证了响应数据 代码 $(document).ready(functi
我在json.getJSON方法上遇到麻烦。这是我当前的代码: var jqxhr = $.getJSON("http://127.0.0.1:5002?callback=?", function()
我需要进行跨域请求,并且 getJSON 有问题。 $.getJSON("http://usr:pwd@10.0.1.xx/cgi-bin/remote/request.cgi?m=json&r=gr
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭 8 年前。 这是我的问题 我有一个充满
我是一名优秀的程序员,十分优秀!