【问题标题】:Replace text in JSON before POST data在 POST 数据之前替换 JSON 中的文本
【发布时间】:2021-06-25 20:52:15
【问题描述】:

我有一个包含无效空格字符的 JSON。我想在通过 Ajax (POST) 发送它之前删除这个空间。因为 "StopsCompleted" 后面的空格在 PHP 中无法实现(空响应)。

摘自 JSON

{"Name":"StopsCompleted ","Category":"Economy","DisplayName":"Haltestellen angefahren ","DisplayDetails":"2/2","Points":10,"IsBoolean":"false",

file.php

jQuery.getJSON("/SourceFile/Vehicles", function(data){
                                
    jQuery.ajax({
        url: '/SourceFile/Vehicles_ajax.php', 
        type: 'POST',
        data: JSON.stringify(data),
        processData: false,
        contentType: "application/json; charset=UTF-8",
        success: function(data){
            jQuery('.ausgabe').html(data);
        }
    });

});

Vehicles-ajax.php

$jsonString = file_get_contents('php://input');
$json = json_decode($jsonString);
print_r($json);

有人对这个问题有什么想法吗?

非常感谢。

【问题讨论】:

  • 空间与您的问题无关。使用json_last_error() 并获得完整的错误描述。
  • 也认为这是一个虚构的问题,因为空格几乎不是非法字符。
  • 字符串不好。最后有一个尾随,。它必须是} 才能正确关闭它。 StopsCompleted 后面的空格与它无关,因为空格是字符串的一部分。
  • 看看 JavaScript 做了什么……没有预期的功能。
  • 如果失败,我可以看到这个错误:SyntaxError: Unexpected token in JSON at position 1783,它位于“StopsCompleted”所在的位置。

标签: php jquery ajax post replace


【解决方案1】:

现在我已经解决了,但是我有一个必须转换为数组的字符串。

var data;
                        
                        jQuery(document).ready(function ($) {
                            
                                                        
                            $('#los').click(function() {
                                    
                                fetch('/SourceFileJSON/Vehicles')
                                    .then(function (response) {
                                        return response.text();
                                      
                                    })
                                    .then(function (data) {
                                        
                                        data = String(data).replace("StopsCompleted ", "StopsCompleted");
                                        
                                        $.ajax({
                                    
                                            url: '/SourceFileJSON/Vehicles_ajax.php', 
                                            type: 'POST',
                                            data: JSON.stringify(data),
                                            contentType: "application/json; charset=UTF-8",
                                            success: function(data){
                                                $('.ausgabe').html(data);
                                            },
                                            error: function(data){
                                                console.log(arguments);
                                            }
                                            
                                        });
                                        
                                    });
                                        
                            });

ajax 文件:

$jsonString = file_get_contents('php://input');
$json = html_entity_decode($jsonString);
$json = json_decode($json, true);
var_dump($json);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2022-08-16
    • 2021-10-04
    • 2022-06-22
    • 1970-01-01
    相关资源
    最近更新 更多