Для Opera (он работает так же, как Chrome), я запустил браузер с помощью этой команды:
opera --user-data-dir="~/Downloads/opera-session" --disable-web-security
Проблема решена! Теперь я могу работать с локальным HTML-файлом (на моем жестком диске) и вызывать запросы Ajax для удаленного источника в том же файле.
Примечание 1: Вы можете указать любую папку в вашем домашнем каталоге как -user-data-dir.
Примечание 2: Протестировано на Debian & nbsp; 8 (Jessie) / Opera 39
Когда вы начинаете нормально (без параметров выше), тот же запрос попадает в блок кода ошибки.
Обратите внимание, что property_tree
интерпретирует ключи как пути, например. старая пара «a.b» = «z» создаст {"a": {"b": "z"}} JSON, а не {"a.b": "z"}. В противном случае использование property_tree
тривиально. Вот небольшой пример.
#include <sstream>
#include <map>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
using boost::property_tree::ptree;
using boost::property_tree::read_json;
using boost::property_tree::write_json;
void example() {
// Write json.
ptree pt;
pt.put ("foo", "bar");
std::ostringstream buf;
write_json (buf, pt, false);
std::string json = buf.str(); // {"foo":"bar"}
// Read json.
ptree pt2;
std::istringstream is (json);
read_json (is, pt2);
std::string foo = pt2.get<std::string> ("foo");
}
std::string map2json (const std::map<std::string, std::string>& map) {
ptree pt;
for (auto& entry: map)
pt.put (entry.first, entry.second);
std::ostringstream buf;
write_json (buf, pt, false);
return buf.str();
}