Могу ли я опубликовать только строку json (без имени =), используя форму?

Я пытаюсь опубликовать данные json по URL-адресу, который я не контролирую. В документе API говорится, что принимаются только данные json. Я думаю, могу ли я использовать html-форму, чтобы упростить ее.

Здесь много сообщений о том, как «размещать данные json с помощью формы», ни одно из них не относится к моей ситуации. Насколько я знаю, проблема в том, что если вы отправляете данные с помощью формы, то всегда публикуется «имя = значение», однако API хочет только «значение». То есть, хотя я могу JSON.stringify input значения в строку JSON, мне все равно нужно опубликовать ее с «именем», которое не нужно API. Итак, это мой вопрос, могу ли я публиковать значения только с помощью формы?

Обновление: Документ API

То, что он говорит в API, для меня очень расплывчато. Ключевая информация: 1) При вызове интерфейса используйте протокол HTTPS и пакет данных JSON, пакет данных не нужно шифровать.

2) Метод запроса HTTPS: POST https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

Для ACCESS_TOKEN мне нужно получить его с помощью пароля, срок действия которого истекает через 2 часа.

3) Если сообщение успешно отправлено, возвращается:

{
   "errcode": 0,
   "errmsg": "ok",
   "invaliduser": "UserID1",
   "invalidparty":"PartyID1",
   "invalidtag":"TagID1"
}

person shenkwen    schedule 24.06.2016    source источник
comment
Json - это пара ключей, то, что вы ищете, по-видимому, представляет собой обычный текст   -  person Alex    schedule 25.06.2016
comment
Вы говорите, что мне нужно использовать text/plain для enctype формы?   -  person shenkwen    schedule 25.06.2016
comment
вы можете опубликовать строку json как просто строку. post НЕ ТРЕБУЕТ пары ключ=значение в теле сообщения. но если вы используете что-то вроде PHP на сервере, вам нужно использовать ключ = значение, потому что ключ требуется для заполнения $_POST значением. вы всегда можете напрямую прочитать необработанное значение из ввода, например. $data = file_get_contents('php://input');. HTML-форма сама по себе НЕ будет отправлять какое-либо значение без имени, поэтому вам понадобится javascript для создания безымянного поста.   -  person Marc B    schedule 25.06.2016
comment
@shenkwen Возможно, было бы проще помочь, если бы был указан URL или другие вещи.   -  person Alex    schedule 25.06.2016
comment
Для доступа к этому URL-адресу требуется динамический ACCESS_TOKEN, поэтому я не могу его предоставить. Но если вы читаете по-китайски, вы можете увидеть этот документ API: qydev.weixin.qq.com/wiki/   -  person shenkwen    schedule 25.06.2016


Ответы (1)


Нет. Работа, позволяющая данным в формате JSON генерироваться напрямую из формы было прекращено.

Чтобы сделать запрос, вам нужно будет использовать либо:

Любой из них может использовать HTML-форму для сбора данных, прежде чем использовать ее для создания запроса к стороннему API.

person Quentin    schedule 24.06.2016
comment
На самом деле я пытался использовать $.ajax, но он возвращает междоменную ошибку, как вы и сказали. Однако мне все еще нужно небольшое пояснение, когда я использую $.ajax для отправки данных, хотя я не вижу, что возвращает URL-адрес из-за междоменной проблемы, но URL-адрес действительно получает данные моего сообщения, не так ли? - person shenkwen; 25.06.2016
comment
Вы можете увидеть полный запрос, используя вкладку «Сеть» в инструментах разработчика вашего браузера. Поскольку вы будете отправлять данные в формате JSON, вы установите тип содержимого на тот, который не может быть сгенерирован простой HTML-формой. Это запускает предварительный запрос OPTIONS, чтобы запросить разрешение. Поскольку служба не использует CORS для предоставления разрешения, она будет отклонена, поэтому запрос POST никогда не будет отправлен. - person Quentin; 25.06.2016